Package: libvarnishapi-dev
Version: 4.0.0-1
Severity: serious
Hi,
/usr/include/varnish/vapi/vsc.h includes the following function:
struct VSC_C_main *VSC_Main(const struct VSM_data *vd,
struct VSM_fantom *fantom);
struct VSC_C_main is not defined in any of the headers shipped in
/usr/include/. Instead, it is defined in
/usr/share/varnish/include/common/common.h.
I'm not sure what the files in /usr/share/varnish/include/ are supposed
to be used for but they are fairly unusable. For example, common.h
includes /usr/share/varnish/include/vas.h which unconditionally defines
assert(), thus conflicting with /usr/include/assert.h. Also, the files
in /usr/share/ redefine various things which are also defined in headers
in /usr/include/, for example:
In file included from /usr/share/varnish/include/common/common.h:42:0,
from varnish.c:35:
/usr/include/varnish/vapi/vsc_int.h:34:6: error: nested redefinition of 'enum
VSC_level_e'
enum VSC_level_e {
^
/usr/include/varnish/vapi/vsc_int.h:34:6: error: redeclaration of 'enum
VSC_level_e'
In file included from /usr/include/varnish/vapi/vsc.h:38:0,
from varnish.c:32:
/usr/include/varnish/vapi/vsc_int.h:34:6: note: originally defined here
enum VSC_level_e {
^
That's the point where I stopped trying to migrate code in collectd to
varnish 4.
I think it's fine to have the code in /usr/share/ conflict with
/usr/include/. After all, /usr/share/ seems to be used for Varnish
modules only. However, /usr/include/ needs to be self-containing.
Thanks,
Sebastian
--
Sebastian tokkee Harl +++ GnuPG-ID: 0x8501C7FC +++ http://tokkee.org/
Those who would give up Essential Liberty to purchase a little Temporary
Safety, deserve neither Liberty nor Safety. -- Benjamin Franklin
signature.asc
Description: Digital signature