Created attachment 14886 [details]
complete Gentoo build log
Build Information:
Wireshark 2.2.0rc2 (Git Rev Unknown from unknown)
Copyright 1998-2016 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later
<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled (64-bit) with Qt 5.6.1, with libpcap, with POSIX capabilities (Linux),
with libnl 3, with GLib 2.48.1, with zlib 1.2.8, without SMI, without c-ares,
without Lua, with GnuTLS 3.4.14, with Gcrypt 1.7.3, without Kerberos, without
GeoIP, with QtMultimedia, without AirPcap.
Running on Linux 4.7.1-gentoo, with locale LC_CTYPE=de_DE.utf8,
LC_NUMERIC=de_DE.utf8, LC_TIME=de_DE.utf8, LC_COLLATE=de_DE.utf8,
LC_MONETARY=de_DE.utf8, LC_MESSAGES=C, LC_PAPER=de_DE.utf8, LC_NAME=de_DE.utf8,
LC_ADDRESS=de_DE.utf8, LC_TELEPHONE=de_DE.utf8, LC_MEASUREMENT=de_DE.utf8,
LC_IDENTIFICATION=de_DE.utf8, with libpcap version 1.8.0, with GnuTLS 3.4.14,
with Gcrypt 1.7.3, with zlib 1.2.8.
AMD Phenom(tm) II X4 945 Processor
Built using gcc 5.3.0.
--
As I reported in https://bugs.gentoo.org/show_bug.cgi?id=588998, I'm having
problems compiling Wireshark 2.2.0rc2 from source on Gentoo with Heimdal
installed and Kerberos support enabled for the Wireshark build.
In file included from ./asn1/kerberos/packet-kerberos-template.c:68:0:
./asn1/kerberos/packet-kerberos-template.h:104:28: error: expected identifier
be
fore numeric constant
#define KRB5_ENCTYPE_NULL 0
^
In file included from ./asn1/kerberos/packet-kerberos-template.c:267:0:
/usr/include/krb5.h:125:28: error: ‘KRB5_ENCTYPE_DES3_CBC_MD5’ undeclared here
(
not in a function)
ENCTYPE_DES3_CBC_MD5 = KRB5_ENCTYPE_DES3_CBC_MD5,
^
/usr/include/krb5.h:126:33: error: ‘KRB5_ENCTYPE_OLD_DES3_CBC_SHA1’ undeclared
h
ere (not in a function)
ENCTYPE_OLD_DES3_CBC_SHA1 = KRB5_ENCTYPE_OLD_DES3_CBC_SHA1,
^
⋮
/usr/include/krb5.h:140:29: error: ‘KRB5_ENCTYPE_DES_PCBC_NONE’ undeclared here
(not in a function)
ENCTYPE_DES_PCBC_NONE = KRB5_ENCTYPE_DES_PCBC_NONE,
^
/usr/include/krb5.h:156:26: error: ‘KRB5_ENCTYPE_ARCFOUR_MD4’ undeclared here
(n
ot in a function)
ETYPE_ARCFOUR_MD4 = KRB5_ENCTYPE_ARCFOUR_MD4,
^
/usr/include/krb5.h:157:30: error: ‘KRB5_ENCTYPE_ARCFOUR_HMAC_OLD’ undeclared
here (not in a function)
ETYPE_ARCFOUR_HMAC_OLD = KRB5_ENCTYPE_ARCFOUR_HMAC_OLD,
^
/usr/include/krb5.h:158:34: error: ‘KRB5_ENCTYPE_ARCFOUR_HMAC_OLD_EXP’
undeclared here (not in a function)
ETYPE_ARCFOUR_HMAC_OLD_EXP = KRB5_ENCTYPE_ARCFOUR_HMAC_OLD_EXP,
^
/usr/include/krb5.h:163:29: error: ‘KRB5_ENCTYPE_DIGEST_MD5_NONE’ undeclared
here (not in a function)
ETYPE_DIGEST_MD5_NONE = KRB5_ENCTYPE_DIGEST_MD5_NONE,
^
/usr/include/krb5.h:164:28: error: ‘KRB5_ENCTYPE_CRAM_MD5_NONE’ undeclared here
(not in a function)
ETYPE_CRAM_MD5_NONE = KRB5_ENCTYPE_CRAM_MD5_NONE
^
Apparently there is a conflict here between the wireshark dissector on the one
hand, which has this in packet-kerberos.h:
/* encryption type constants */
#define KRB5_ENCTYPE_NULL 0
#define KRB5_ENCTYPE_DES_CBC_CRC 1
#define KRB5_ENCTYPE_DES_CBC_MD4 2
#define KRB5_ENCTYPE_DES_CBC_MD5 3
#define KRB5_ENCTYPE_DES_CBC_RAW 4
#define KRB5_ENCTYPE_DES3_CBC_SHA 5
⋮
And on the other hand, heimdal itself has the following in
/usr/include/x86_64-pc-linux-gnu/krb5_asn1.h:
typedef enum ENCTYPE {
KRB5_ENCTYPE_NULL = 0,
KRB5_ENCTYPE_DES_CBC_CRC = 1,
KRB5_ENCTYPE_DES_CBC_MD4 = 2,
KRB5_ENCTYPE_DES_CBC_MD5 = 3,
KRB5_ENCTYPE_DES3_CBC_MD5 = 5,
⋮
Combined these give an invalid enum like this:
typedef enum ENCTYPE {
0 = 0,
1 = 1,
2 = 2,
3 = 3,
KRB5_ENCTYPE_DES3_CBC_MD5 = 5,
⋮
Personally I'd say packet-kerberos-template.c shouldn't define these names, but
instead either use a different naming scheme or rely on the constants provided
in the headers.