Zebra fails to build properly. The smux.c file has mad errors. Reproducible: Always Steps to Reproduce: emerge zebra Actual Results: gcc -DHAVE_CONFIG_H -DSYSCONFDIR=\"/etc/zebra/\" -I. -I. -I.. -I.. -I.. - I../lib -mcpu=pentium4 -O2 -pipe -msse -mmmx -mfpmath=sse - I/usr/include/ucd-snmp -c `test -f 'smux.c' || echo './'`smux.c In file included from smux.c:26: /usr/include/ucd-snmp/asn1.h:7:2: #error "Please update your headers or configure using --enable-ucd-snmp-compatibility" In file included from smux.c:27: /usr/include/ucd-snmp/snmp.h:7:2: #error "Please update your headers or configure using --enable-ucd-snmp-compatibility" In file included from smux.c:28: /usr/include/ucd-snmp/snmp_impl.h:7:2: #error "Please update your headers or configure using --enable-ucd-snmp-compatibility" In file included from smux.c:30: smux.h:70: parse error before "oid" smux.h:75: parse error before "oid" smux.h:98: parse error before "oid" smux.h:98: warning: no semicolon at end of struct or union smux.h:105: parse error before "oid" smux.h:105: warning: no semicolon at end of struct or union smux.h:119: parse error before '}' token smux.h:125: parse error before "oid" smux.h:125: warning: no semicolon at end of struct or union smux.h:147: parse error before '[' token smux.h:149: parse error before "oid" smux.h:150: parse error before "oid" smux.h:152: parse error before '*' token smux.h:154: parse error before '*' token smux.h:155: parse error before '[' token smux.h:157: parse error before '[' token smux.c:53: parse error before '*' token smux.c:53: warning: data definition has no type or storage class smux.c:57: parse error before '*' token smux.c:57: warning: data definition has no type or storage class smux.c: In function `oid_copy': smux.c:86: `oid' undeclared (first use in this function) smux.c:86: (Each undeclared identifier is reported only once smux.c:86: for each function it appears in.) smux.c: At top level: smux.c:90: parse error before "oid" smux.c: In function `oid2in_addr': smux.c:95: `len' undeclared (first use in this function) smux.c:98: `addr' undeclared (first use in this function) smux.c:101: `oid' undeclared (first use in this function) smux.c: At top level: smux.c:105: parse error before "oid" smux.c: In function `oid_copy_addr': smux.c:110: `len' undeclared (first use in this function) smux.c:113: `addr' undeclared (first use in this function) smux.c:116: `oid' undeclared (first use in this function) smux.c: At top level: smux.c:120: parse error before '*' token smux.c: In function `oid_compare': smux.c:124: `o1_len' undeclared (first use in this function) smux.c:124: `o2_len' undeclared (first use in this function) smux.c:126: `o1' undeclared (first use in this function) smux.c:126: `o2' undeclared (first use in this function) smux.c: At top level: smux.c:140: parse error before '*' token smux.c: In function `oid_compare_part': smux.c:144: `o1_len' undeclared (first use in this function) smux.c:144: `o2_len' undeclared (first use in this function) smux.c:146: `o1' undeclared (first use in this function) smux.c:146: `o2' undeclared (first use in this function) smux.c: At top level: smux.c:158: parse error before "oid" smux.c: In function `smux_oid_dump': smux.c:162: `MAX_OID_LEN' undeclared (first use in this function) smux.c:166: `oid_len' undeclared (first use in this function) smux.c:168: `oid' undeclared (first use in this function) smux.c:171: `prefix' undeclared (first use in this function) smux.c: At top level: smux.c:268: parse error before "objid" smux.c: In function `smux_getresp_send': smux.c:283: `reqid' undeclared (first use in this function) smux.c:288: `ASN_CONTEXT' undeclared (first use in this function) smux.c:288: `ASN_CONSTRUCTOR' undeclared (first use in this function) smux.c:288: warning: assignment makes pointer from integer without a cast smux.c:292: `ASN_UNIVERSAL' undeclared (first use in this function) smux.c:292: `ASN_PRIMITIVE' undeclared (first use in this function) smux.c:292: `ASN_INTEGER' undeclared (first use in this function) smux.c:293: warning: assignment makes pointer from integer without a cast smux.c:296: `errstat' undeclared (first use in this function) smux.c:300: warning: assignment makes pointer from integer without a cast smux.c:302: `errindex' undeclared (first use in this function) smux.c:306: warning: assignment makes pointer from integer without a cast smux.c:311: `ASN_SEQUENCE' undeclared (first use in this function) smux.c:312: warning: assignment makes pointer from integer without a cast smux.c:315: `objid' undeclared (first use in this function) smux.c:315: `objid_len' undeclared (first use in this function) smux.c:316: `val_type' undeclared (first use in this function) smux.c:316: `arg_len' undeclared (first use in this function) smux.c:316: `arg' undeclared (first use in this function) smux.c:316: warning: assignment makes pointer from integer without a cast smux.c: At top level: smux.c:331: parse error before "oid" smux.c: In function `smux_var': smux.c:342: `len' undeclared (first use in this function) smux.c:345: `ptr' undeclared (first use in this function) smux.c:351: `ASN_SEQUENCE' undeclared (first use in this function) smux.c:351: `ASN_CONSTRUCTOR' undeclared (first use in this function) smux.c:355: `objid_len' undeclared (first use in this function) smux.c:355: `MAX_OID_LEN' undeclared (first use in this function) smux.c:356: `objid' undeclared (first use in this function) smux.c:359: `var_val_len' undeclared (first use in this function) smux.c:362: `var_value' undeclared (first use in this function) smux.c:365: `var_val_type' undeclared (first use in this function) smux.c:379: `ASN_NULL' undeclared (first use in this function) smux.c:385: `ASN_INTEGER' undeclared (first use in this function) smux.c:388: `ASN_COUNTER' undeclared (first use in this function) smux.c:389: `ASN_GAUGE' undeclared (first use in this function) smux.c:390: `ASN_TIMETICKS' undeclared (first use in this function) smux.c:391: `ASN_UINTEGER' undeclared (first use in this function) smux.c:394: `ASN_COUNTER64' undeclared (first use in this function) smux.c:397: `ASN_IPADDRESS' undeclared (first use in this function) smux.c:400: `ASN_OCTET_STR' undeclared (first use in this function) smux.c:403: `ASN_OPAQUE' undeclared (first use in this function) smux.c:404: `ASN_NSAP' undeclared (first use in this function) smux.c:405: `ASN_OBJECT_ID' undeclared (first use in this function) smux.c:408: `SNMP_NOSUCHOBJECT' undeclared (first use in this function) smux.c:411: `SNMP_NOSUCHINSTANCE' undeclared (first use in this function) smux.c:414: `SNMP_ENDOFMIBVIEW' undeclared (first use in this function) smux.c:417: `ASN_BIT_STR' undeclared (first use in this function) smux.c: At top level: smux.c:432: parse error before '*' token smux.c: In function `smux_set': smux.c:439: `oid' undeclared (first use in this function) smux.c:439: `suffix' undeclared (first use in this function) smux.c:450: `reqid' undeclared (first use in this function) smux.c:450: `reqid_len' undeclared (first use in this function) smux.c:451: dereferencing pointer to incomplete type smux.c:451: dereferencing pointer to incomplete type smux.c:457: dereferencing pointer to incomplete type smux.c:458: dereferencing pointer to incomplete type smux.c:462: dereferencing pointer to incomplete type smux.c:464: dereferencing pointer to incomplete type smux.c:468: dereferencing pointer to incomplete type smux.c:468: dereferencing pointer to incomplete type smux.c:474: dereferencing pointer to incomplete type smux.c:476: dereferencing pointer to incomplete type smux.c:477: `val_len' undeclared (first use in this function) smux.c:481: `action' undeclared (first use in this function) smux.c:481: `val' undeclared (first use in this function) smux.c:481: `val_type' undeclared (first use in this function) smux.c:486: `SNMP_ERR_READONLY' undeclared (first use in this function) smux.c:493: `SNMP_ERR_NOSUCHNAME' undeclared (first use in this function) smux.c: At top level: smux.c:501: parse error before '*' token smux.c: In function `smux_get': smux.c:508: `oid' undeclared (first use in this function) smux.c:508: `suffix' undeclared (first use in this function) smux.c:518: `reqid' undeclared (first use in this function) smux.c:518: `reqid_len' undeclared (first use in this function) smux.c:519: dereferencing pointer to incomplete type smux.c:519: dereferencing pointer to incomplete type smux.c:525: dereferencing pointer to incomplete type smux.c:526: dereferencing pointer to incomplete type smux.c:530: dereferencing pointer to incomplete type smux.c:532: dereferencing pointer to incomplete type smux.c:536: dereferencing pointer to incomplete type smux.c:536: dereferencing pointer to incomplete type smux.c:542: dereferencing pointer to incomplete type smux.c:544: `val' undeclared (first use in this function) smux.c:544: dereferencing pointer to incomplete type smux.c:544: `exact' undeclared (first use in this function) smux.c:545: `val_len' undeclared (first use in this function) smux.c:549: `SNMP_NOSUCHINSTANCE' undeclared (first use in this function) smux.c:552: `val_type' undeclared (first use in this function) smux.c:552: dereferencing pointer to incomplete type smux.c:560: `SNMP_ERR_NOSUCHNAME' undeclared (first use in this function) smux.c: At top level: smux.c:568: parse error before '*' token smux.c: In function `smux_getnext': smux.c:572: `oid' undeclared (first use in this function) smux.c:572: parse error before "save" smux.c:577: `suffix' undeclared (first use in this function) smux.c:585: `save' undeclared (first use in this function) smux.c:585: `reqid' undeclared (first use in this function) smux.c:585: `reqid_len' undeclared (first use in this function) smux.c:593: dereferencing pointer to incomplete type smux.c:593: dereferencing pointer to incomplete type smux.c:609: dereferencing pointer to incomplete type smux.c:610: dereferencing pointer to incomplete type smux.c:613: dereferencing pointer to incomplete type smux.c:613: dereferencing pointer to incomplete type smux.c:614: dereferencing pointer to incomplete type smux.c:616: dereferencing pointer to incomplete type smux.c:619: dereferencing pointer to incomplete type smux.c:624: dereferencing pointer to incomplete type smux.c:624: dereferencing pointer to incomplete type smux.c:629: dereferencing pointer to incomplete type smux.c:632: dereferencing pointer to incomplete type smux.c:632: dereferencing pointer to incomplete type smux.c:633: dereferencing pointer to incomplete type smux.c:635: `val' undeclared (first use in this function) smux.c:635: dereferencing pointer to incomplete type smux.c:635: `exact' undeclared (first use in this function) smux.c:636: `val_len' undeclared (first use in this function) smux.c:637: dereferencing pointer to incomplete type smux.c:640: `val_type' undeclared (first use in this function) smux.c:640: dereferencing pointer to incomplete type smux.c:650: `SNMP_ERR_NOSUCHNAME' undeclared (first use in this function) smux.c: In function `smux_parse_get_header': smux.c:662: warning: assignment makes pointer from integer without a cast smux.c:668: warning: assignment makes pointer from integer without a cast smux.c:674: warning: assignment makes pointer from integer without a cast smux.c: In function `smux_parse_set': smux.c:686: `oid' undeclared (first use in this function) smux.c:686: parse error before "oid" smux.c:695: `RESERVE1' undeclared (first use in this function) smux.c:695: `FREE' undeclared (first use in this function) smux.c:710: `ASN_NULL' undeclared (first use in this function) smux.c: In function `smux_parse_get': smux.c:717: `oid' undeclared (first use in this function) smux.c:717: parse error before "oid" smux.c:743: `ASN_NULL' undeclared (first use in this function) smux.c: In function `smux_parse_rrsp': smux.c:767: warning: assignment makes pointer from integer without a cast smux.c: In function `smux_parse': smux.c:792: warning: assignment makes pointer from integer without a cast smux.c:799: `ASN_APPLICATION' undeclared (first use in this function) smux.c:799: `ASN_CONSTRUCTOR' undeclared (first use in this function) smux.c:809: `ASN_PRIMITIVE' undeclared (first use in this function) smux.c:816: `FREE' undeclared (first use in this function) smux.c:816: `COMMIT' undeclared (first use in this function) smux.c:839: `ASN_CONTEXT' undeclared (first use in this function) smux.c:877: `RESERVE1' undeclared (first use in this function) smux.c: In function `smux_open': smux.c:963: `ASN_APPLICATION' undeclared (first use in this function) smux.c:963: `ASN_CONSTRUCTOR' undeclared (first use in this function) smux.c:963: warning: assignment makes pointer from integer without a cast smux.c:968: `ASN_UNIVERSAL' undeclared (first use in this function) smux.c:968: `ASN_PRIMITIVE' undeclared (first use in this function) smux.c:968: `ASN_INTEGER' undeclared (first use in this function) smux.c:969: warning: assignment makes pointer from integer without a cast smux.c:974: `ASN_OBJECT_ID' undeclared (first use in this function) smux.c:975: warning: assignment makes pointer from integer without a cast smux.c:980: `ASN_OCTET_STR' undeclared (first use in this function) smux.c:981: warning: assignment makes pointer from integer without a cast smux.c:987: warning: assignment makes pointer from integer without a cast smux.c: At top level: smux.c:997: parse error before '*' token smux.c: In function `smux_trap': smux.c:1019: `ASN_CONTEXT' undeclared (first use in this function) smux.c:1019: `ASN_CONSTRUCTOR' undeclared (first use in this function) smux.c:1019: warning: assignment makes pointer from integer without a cast smux.c:1024: `ASN_UNIVERSAL' undeclared (first use in this function) smux.c:1024: `ASN_PRIMITIVE' undeclared (first use in this function) smux.c:1024: `ASN_OBJECT_ID' undeclared (first use in this function) smux.c:1025: warning: assignment makes pointer from integer without a cast smux.c:1031: `ASN_IPADDRESS' undeclared (first use in this function) smux.c:1032: warning: assignment makes pointer from integer without a cast smux.c:1035: `SNMP_TRAP_ENTERPRISESPECIFIC' undeclared (first use in this function) smux.c:1037: `ASN_INTEGER' undeclared (first use in this function) smux.c:1038: warning: assignment makes pointer from integer without a cast smux.c:1044: warning: assignment makes pointer from integer without a cast smux.c:1049: `ASN_TIMETICKS' undeclared (first use in this function) smux.c:1050: warning: assignment makes pointer from integer without a cast smux.c:1055: `ASN_SEQUENCE' undeclared (first use in this function) smux.c:1056: warning: assignment makes pointer from integer without a cast smux.c:1061: `trapobjlen' undeclared (first use in this function) smux.c:1064: `oid' undeclared (first use in this function) smux.c:1064: parse error before "oid" smux.c:1071: `name' undeclared (first use in this function) smux.c:1071: `namelen' undeclared (first use in this function) smux.c:1072: `trapobj' undeclared (first use in this function) smux.c:1073: `iname' undeclared (first use in this function) smux.c:1073: `inamelen' undeclared (first use in this function) smux.c:1086: warning: assignment makes pointer from integer without a cast smux.c: In function `smux_register': smux.c:1122: `ASN_APPLICATION' undeclared (first use in this function) smux.c:1122: `ASN_CONSTRUCTOR' undeclared (first use in this function) smux.c:1122: warning: assignment makes pointer from integer without a cast smux.c:1127: `ASN_UNIVERSAL' undeclared (first use in this function) smux.c:1127: `ASN_PRIMITIVE' undeclared (first use in this function) smux.c:1127: `ASN_OBJECT_ID' undeclared (first use in this function) smux.c:1128: dereferencing pointer to incomplete type smux.c:1128: dereferencing pointer to incomplete type smux.c:1128: warning: assignment makes pointer from integer without a cast smux.c:1133: `ASN_INTEGER' undeclared (first use in this function) smux.c:1134: warning: assignment makes pointer from integer without a cast smux.c:1140: warning: assignment makes pointer from integer without a cast smux.c:1144: dereferencing pointer to incomplete type smux.c:1144: dereferencing pointer to incomplete type smux.c: At top level: smux.c:1247: parse error before "oid" smux.c: In function `smux_str2oid': smux.c:1254: `oid_len' undeclared (first use in this function) smux.c:1256: `str' undeclared (first use in this function) smux.c:1278: `oid' undeclared (first use in this function) smux.c: At top level: smux.c:1289: parse error before '*' token smux.c:1290: parse error before '*' token smux.c: In function `smux_oid_dup': smux.c:1292: `oid' undeclared (first use in this function) smux.c:1292: `new' undeclared (first use in this function) smux.c:1294: `objid_len' undeclared (first use in this function) smux.c:1295: `objid' undeclared (first use in this function) smux.c: In function `smux_peer_oid': smux.c:1304: `oid' undeclared (first use in this function) smux.c:1304: parse error before "oid" smux.c: At top level: smux.c:1333: parse error before "oid" smux.c: In function `smux_header_generic': smux.c:1336: `oid' undeclared (first use in this function) smux.c:1336: parse error before "fulloid" smux.c:1339: `fulloid' undeclared (first use in this function) smux.c:1339: `v' undeclared (first use in this function) smux.c:1342: `name' undeclared (first use in this function) smux.c:1342: `length' undeclared (first use in this function) smux.c:1345: `exact' undeclared (first use in this function) smux.c:1352: `write_method' undeclared (first use in this function) smux.c:1353: `var_len' undeclared (first use in this function) smux.c: At top level: smux.c:1441: parse error before "oid" smux.c: In function `smux_register_mib': smux.c:1445: sizeof applied to an incomplete type smux.c:1446: dereferencing pointer to incomplete type smux.c:1446: `name' undeclared (first use in this function) smux.c:1446: `namelen' undeclared (first use in this function) smux.c:1447: dereferencing pointer to incomplete type smux.c:1448: dereferencing pointer to incomplete type smux.c:1448: `var' undeclared (first use in this function) smux.c:1449: dereferencing pointer to incomplete type smux.c:1449: `num' undeclared (first use in this function) smux.c:1450: dereferencing pointer to incomplete type smux.c:1450: `width' undeclared (first use in this function) smux.c:1451: dereferencing pointer to incomplete type smux.c: In function `smux_tree_cmp': smux.c:1466: dereferencing pointer to incomplete type smux.c:1466: dereferencing pointer to incomplete type smux.c:1467: dereferencing pointer to incomplete type smux.c:1467: dereferencing pointer to incomplete type smux.c: At top level: smux.c:1472: parse error before "defoid" smux.c: In function `smux_init': smux.c:1475: `defoid' undeclared (first use in this function) smux.c:1476: `defoid_len' undeclared (first use in this function) make[2]: *** [smux.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/zebra-0.93b-r1/work/zebra- 0.93b/lib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/zebra-0.93b-r1/work/zebra-0.93b' make: *** [all] Error 2 !!! ERROR: net-misc/zebra-0.93b-r1 failed. !!! Function src_compile, Line 57, Exitcode 2 !!! emake failed Expected Results: Built Zebra.
The following is a patch to zebra-0.93b-r2.ebuild that allows it to build: 49c49 < use snmp && myconf="${myconf} --enable-snmp" || myconf="${myconf} --disable-snmp" --- > use snmp && myconf="${myconf} --enable-ucd-snmp-compatibility" || myconf="${myconf} --disable-snmp"
It appears to be an SNMP deal. It doesn't use net-snmp yet. emerge info Portage 2.0.49-r15 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.20-gentoo-r2) ================================================================= System uname: 2.4.20-gentoo-r2 i686 Intel(R) Pentium(R) 4 CPU 2.66GHz Gentoo Base System version 1.4.3.10p1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-mcpu=pentium4 -O2 -pipe -msse -mmmx -mfpmath=sse" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="sandbox ccache autoaddcvs" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 oss apm crypt foomaticdb jpeg mad ncurses nls pdflib png spell truetype xml2 xmms xv zlib gdbm slang readline tcltk X tcpd pam perl python esd imlib gtk motif oggvorbis apache2 alsa -gnome xml -3dnow -arts avi -berkdb -cups encode gd -gif gpm imap innodb -java kde ldap -libg++ libwww maildir -mikmod mpeg mysql -opengl qt quicktime -qtmt sasl snmp se ssl mmx -svga sdl"
We will merge Quagga this week. Quagga depreciates Zebra.
Zebra should not be ignored just because Quagga is now out there. *Most* people will continue to use zebra for a while, if not forever. This is something that should be fixed.
Hmm. Seems that I'm probably wrong, after reading some mailing list archives. Disregard my last comment.