Package: libldns-dev Version: 1.2.1-2 Severity: normal Tags: upstream Including <libldns/libldns.h> is not enough to successfully compile a program which uses the libldns API. Viz:
[EMAIL PROTECTED]:~/code/test$ cat ldns.c
#include <ldns/ldns.h>
int main(void){ return 0; }
[EMAIL PROTECTED]:~/code/test$ gcc -Wall -o ldns ldns.c
In file included from /usr/include/ldns/ldns.h:94,
from ldns.c:1:
/usr/include/ldns/util.h:55: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or
‘__attribute__’ before ‘ldns_read_uint16’
/usr/include/ldns/util.h:66: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or
‘__attribute__’ before ‘ldns_read_uint32’
/usr/include/ldns/util.h:84: error: expected declaration specifiers or
‘...’ before ‘uint16_t’
/usr/include/ldns/util.h: In function ‘ldns_write_uint16’:
/usr/include/ldns/util.h:89: error: ‘uint8_t’ undeclared (first use in this
function)
[...]
uint8_t is defined in the C99 standard library header stdint.h, which is
not included by any ldns header file. Including stdint.h gives:
[EMAIL PROTECTED]:~/code/test$ cat ldns2.c
#include <stdint.h>
#include <ldns/ldns.h>
int main(void){ return 0; }
[EMAIL PROTECTED]:~/code/test$ gcc -Wall -o ldns2 ldns2.c
In file included from /usr/include/ldns/ldns.h:95,
from ldns2.c:2:
/usr/include/ldns/buffer.h:163: error: expected declaration specifiers or
‘...’ before ‘ssize_t’
[...]
Now we need another header for ssize_t:
[EMAIL PROTECTED]:~/code/test$ cat ldns3.c
#include <stdint.h>
#include <sys/types.h>
#include <ldns/ldns.h>
int main(void){ return 0; }
[EMAIL PROTECTED]:~/code/test$ gcc -Wall -o ldns3 ldns3.c
[EMAIL PROTECTED]:~/code/test$
Upstream should include headers when types from those headers are used.
--
Robert Edmonds
[EMAIL PROTECTED]
signature.asc
Description: Digital signature

