summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorseb <seb@pkgsrc.org>2004-02-13 17:46:22 +0000
committerseb <seb@pkgsrc.org>2004-02-13 17:46:22 +0000
commitbcc2043e99b2ee59eb3eb81e98562010096df1b2 (patch)
treedb2c1a6ff6c07052d4e89a9ace9ad6347b6d09e3
parent9642799c3b97a843c8c5d98cc63c5428f7c6060a (diff)
downloadpkgsrc-bcc2043e99b2ee59eb3eb81e98562010096df1b2.tar.gz
Update to version 5.0.9.
The main change is the switch from UCD-SNMP to Net-SNMP, gaining asynchronous operation in the process and support for net-snmp configuration files -this will likely affect your perl applications.
-rw-r--r--net/p5-SNMP/DESCR22
-rw-r--r--net/p5-SNMP/Makefile30
-rw-r--r--net/p5-SNMP/PLIST13
-rw-r--r--net/p5-SNMP/distinfo12
-rw-r--r--net/p5-SNMP/patches/patch-aa43
-rw-r--r--net/p5-SNMP/patches/patch-ab192
-rw-r--r--net/p5-SNMP/patches/patch-ac77
7 files changed, 279 insertions, 110 deletions
diff --git a/net/p5-SNMP/DESCR b/net/p5-SNMP/DESCR
index 44d7e52bf62..8db0048cdc3 100644
--- a/net/p5-SNMP/DESCR
+++ b/net/p5-SNMP/DESCR
@@ -1,9 +1,15 @@
-This is a Perl5 extension module which provides an interface to the
-CMU-SNMPv2 library.
+This is the Perl5 'SNMP' extension module. The SNMP module provides a
+full featured, tri-lingual SNMP (SNMPv3, SNMPv2c, SNMPv1) API. The
+SNMP module also provides an interface to the SMI MIB parse-tree for
+run-time access to parsed MIB data. The SNMP module internals rely on
+the Net-SNMP toolkit library (previously known as ucd-snmp).
-The basic operations offered by SNMP are provided through an object
-oriented interface for modularity and ease of use. The primary object is
-SNMP::Session which is implemented as a blessed hash reference. The
-object supports 'get', 'set', and 'getNext' method calls. All calls are
-blocking/synchronous (i.e., they must receive a response or timeout
-before control is returned to the caller).
+The basic operations of the SNMP protocol are provided by this module
+through an object oriented interface for modularity and ease of use.
+The primary class is SNMP::Session which encapsulates the persistent
+aspects of a connection between the management application and the
+managed agent. Internally the class is implemented as a blessed hash
+reference. This class supplies 'get', 'getnext', 'set', 'fget', and
+'fgetnext' and other method calls. The methods take a variety of input
+argument formats and support both synchronous and asynchronous
+operation through a polymorphic API.
diff --git a/net/p5-SNMP/Makefile b/net/p5-SNMP/Makefile
index ced5545643b..73bb6e03920 100644
--- a/net/p5-SNMP/Makefile
+++ b/net/p5-SNMP/Makefile
@@ -1,35 +1,27 @@
-# $NetBSD: Makefile,v 1.17 2003/09/13 06:22:50 jlam Exp $
+# $NetBSD: Makefile,v 1.18 2004/02/13 17:46:22 seb Exp $
# FreeBSD Id: Makefile,v 1.1.1.1 1997/06/27 01:53:13 jfitz Exp
#
-DISTNAME= SNMP-3.1.0
-PKGNAME= p5-SNMP-3.1.0
-PKGREVISION= 1
+DISTNAME= net-snmp-5.0.9
+PKGNAME= p5-SNMP-5.0.9
SVR4_PKGNAME= p5snm
CATEGORIES= net perl5
-MASTER_SITES= ${MASTER_SITE_PERL_CPAN:=SNMP/}
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=net-snmp/}
MAINTAINER= tech-pkg@NetBSD.org
-COMMENT= Perl5 module for interfacing to the UCD SNMP library
+HOMEPAGE= http://www.net-snmp.org/
+COMMENT= Perl5 module for interfacing to the Net-SNMP library
USE_BUILDLINK2= YES
-PERL5_PACKLIST= ${PERL5_SITEARCH}/auto/SNMP/.packlist
+PERL5_PACKLIST= ${PERL5_SITEARCH}/auto/Bundle/NetSNMP/.packlist
-# Until the source catches up to the current Perl API, we need PERL_POLLUTE
-# to look like an older perl.
-#MAKE_PARAMS= DEFINE="-DPERL_POLLUTE=1"
+WRKSRC= ${WRKDIR}/${DISTNAME}/perl
-PLFILES= async1.pl async2.pl ipforward.pl mibtree.pl mibwalk.pl
-PLFILES+= pingmib.pl tablewalk.pl testleak.pl
-
-post-build:
- @for i in ${PLFILES} ; do ${ECHO} "#! ${PREFIX}/bin/perl" | ${CAT} - ${WRKSRC}/examples/$$i > ${WRKDIR}/$$i ; done
+INSTALLATION_DIRS+= share/doc/p5-SNMP
post-install:
- @${INSTALL_DATA} ${WRKSRC}/README ${PERL5_SITELIB}/README.SNMP
- @${INSTALL_DATA_DIR} ${PREFIX}/share/examples/p5-SNMP
- @for i in ${PLFILES} ; do ${INSTALL_SCRIPT} ${WRKDIR}/$$i ${PREFIX}/share/examples/p5-SNMP/$$i ; done
+ ${INSTALL_DATA} ${WRKSRC}/SNMP/README ${PREFIX}/share/doc/p5-SNMP/README
.include "../../lang/perl5/module.mk"
-.include "../../net/ucd-snmp/buildlink2.mk"
+.include "../../net/net-snmp/buildlink2.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/net/p5-SNMP/PLIST b/net/p5-SNMP/PLIST
index 705df0c709c..852e603ab50 100644
--- a/net/p5-SNMP/PLIST
+++ b/net/p5-SNMP/PLIST
@@ -1,11 +1,2 @@
-@comment $NetBSD: PLIST,v 1.1 2001/10/31 22:57:30 zuntum Exp $
-${PERL5_SITELIB}/README.SNMP
-share/examples/p5-SNMP/async1.pl
-share/examples/p5-SNMP/async2.pl
-share/examples/p5-SNMP/ipforward.pl
-share/examples/p5-SNMP/mibtree.pl
-share/examples/p5-SNMP/mibwalk.pl
-share/examples/p5-SNMP/pingmib.pl
-share/examples/p5-SNMP/tablewalk.pl
-share/examples/p5-SNMP/testleak.pl
-@dirrm share/examples/p5-SNMP
+@comment $NetBSD: PLIST,v 1.2 2004/02/13 17:46:22 seb Exp $
+share/doc/p5-SNMP/README
diff --git a/net/p5-SNMP/distinfo b/net/p5-SNMP/distinfo
index f7f774361fc..6b2892bac46 100644
--- a/net/p5-SNMP/distinfo
+++ b/net/p5-SNMP/distinfo
@@ -1,7 +1,7 @@
-$NetBSD: distinfo,v 1.2 2001/04/21 11:23:28 wiz Exp $
+$NetBSD: distinfo,v 1.3 2004/02/13 17:46:22 seb Exp $
-SHA1 (SNMP-3.1.0.tar.gz) = 097be7307d2803e74149abf294735d7aea5cfba8
-Size (SNMP-3.1.0.tar.gz) = 75010 bytes
-SHA1 (patch-aa) = 5a2c41eda609fee3b30ceccf436650c29f54d41b
-SHA1 (patch-ab) = 919e877aabec85b775a07cc74a7c646485298f70
-SHA1 (patch-ac) = d36f4edac534971f598129880f62af52120ff829
+SHA1 (net-snmp-5.0.9.tar.gz) = bb27bdf38da96833a3fa55f8c6a14732ab2c1991
+Size (net-snmp-5.0.9.tar.gz) = 2345822 bytes
+SHA1 (patch-aa) = bf695411a053cd0a9d8ecfd056edc57528454487
+SHA1 (patch-ab) = cedbea3a47e0322d9528333e1e8323e3d496cf9d
+SHA1 (patch-ac) = d423bdee21c07f4625f77ec1e08f6b212fab2b79
diff --git a/net/p5-SNMP/patches/patch-aa b/net/p5-SNMP/patches/patch-aa
index 5c681c576ec..7f0d28b2754 100644
--- a/net/p5-SNMP/patches/patch-aa
+++ b/net/p5-SNMP/patches/patch-aa
@@ -1,34 +1,13 @@
-$NetBSD: patch-aa,v 1.3 2001/01/30 22:03:39 wrstuden Exp $
+$NetBSD: patch-aa,v 1.4 2004/02/13 17:46:22 seb Exp $
---- Makefile.PL.orig Fri Jan 26 13:35:24 2001
-+++ Makefile.PL Fri Jan 26 14:03:10 2001
-@@ -31,9 +31,9 @@
- $snmp_link_lib = 'snmp';
- $sep = '/';
- }
-- my $inc_path1 = "${sep}usr${sep}local${sep}include";
-+ my $inc_path1 = "$ENV{'PREFIX'}${sep}include";
- my $inc_path2 = "${sep}usr${sep}include";
-- my $lib_path1 = "${sep}usr${sep}local${sep}lib";
-+ my $lib_path1 = "$ENV{'PREFIX'}${sep}lib";
- my $lib_path2 = "${sep}usr${sep}lib";
+--- OID/OID.xs.orig Thu Dec 19 22:49:21 2002
++++ OID/OID.xs
+@@ -12,7 +12,7 @@
+ #define NETSNMP_NAMEBUF_LEN 128
+ typedef struct netsnmp_oid_s {
+ oid *name;
+- unsigned int len;
++ size_t len;
+ oid namebuf[ NETSNMP_NAMEBUF_LEN ];
+ } netsnmp_oid;
- my @IncludeFiles = qw[ucd-snmp/ucd-snmp-config.h
-@@ -58,7 +58,7 @@
- $ssl_link_lib = ($^O =~ /win32/i ? 'libeay32' : 'crypto');
- my $ssl_link_libs;
- if (HasSSL("$IncludeDir${sep}ucd-snmp/ucd-snmp-config.h")) {
-- my @SSLLibDirs = ("/usr/local/lib", "/usr/local/ssl/lib", "/usr/lib");
-+ my @SSLLibDirs = ("/usr/lib", "$ENV{'PREFIX'}/lib");
- my $SSLLibDir = find_files([$ssl_lib], \@SSLLibDirs) ||
- prompt("Where is the SSL library installed?", $SSLLibDirs[1]);
- $ssl_link = "-L$SSLLibDir -l$ssl_link_lib" if $SSLLibDir;
-@@ -87,7 +87,7 @@
- sub GetTestInfo {
- my $sep = ($^O =~ /win32/i ? '\\' : '/');
- my $info_file = "t${sep}snmptest.cmd";
-- my $snmpd_path1 = "${sep}usr${sep}local${sep}sbin";
-+ my $snmpd_path1 = "$ENV{'PREFIX'}${sep}sbin";
- my $snmpd_path2 = "${sep}usr${sep}sbin";
- my $snmpd_path3 = "${sep}usr${sep}bin";
- return if -e $info_file;
diff --git a/net/p5-SNMP/patches/patch-ab b/net/p5-SNMP/patches/patch-ab
index ae9e87f4cc5..1cc49afe859 100644
--- a/net/p5-SNMP/patches/patch-ab
+++ b/net/p5-SNMP/patches/patch-ab
@@ -1,16 +1,176 @@
-$NetBSD: patch-ab,v 1.1 2001/01/30 22:03:39 wrstuden Exp $
---- t/mibload.t.orig Mon Jan 29 10:19:18 2001
-+++ t/mibload.t Mon Jan 29 10:24:02 2001
-@@ -33,9 +33,9 @@
- @mibdir = ("/usr/mibs");
- @mibfile = ("/usr/mibs/IPV6-TCP-MIB.txt", "/usr/mibs/snmp-proxy-mib.txt");
- } else {
-- $mibfile1 = "/usr/local/share/snmp/mibs/TCP-MIB.txt";
-- @mibdir = ('/usr/local/share/snmp/mibs/');
-- @mibfile = ('/usr/local/share/snmp/mibs/IPV6-TCP-MIB.txt');
-+ $mibfile1 = "$ENV{'PREFIX'}/share/snmp/mibs/TCP-MIB.txt";
-+ @mibdir = ("$ENV{'PREFIX'}/share/snmp/mibs/");
-+ @mibfile = ("$ENV{'PREFIX'}/share/snmp/mibs/IPV6-TCP-MIB.txt");
- }
- ######################################################################
- # See if we can find a mib to use, return of 0 means the file wasn't
+$NetBSD: patch-ab,v 1.2 2004/02/13 17:46:22 seb Exp $
+
+--- SNMP/SNMP.xs.orig Fri Jul 25 01:14:48 2003
++++ SNMP/SNMP.xs
+@@ -119,15 +119,15 @@ static int __snprint_value _((char *, si
+ netsnmp_variable_list*, struct tree *,
+ int, int));
+ static int __sprint_num_objid _((char *, oid *, int));
+-static int __scan_num_objid _((char *, oid *, int *));
++static int __scan_num_objid _((char *, oid *, size_t *));
+ static int __get_type_str _((int, char *));
+ static int __get_label_iid _((char *, char **, char **, int));
+ static int __oid_cmp _((oid *, int, oid *, int));
+ static int __tp_sprint_num_objid _((char*,SnmpMibNode *));
+ static SnmpMibNode * __get_next_mib_node _((SnmpMibNode *));
+ static struct tree * __oid2tp _((oid*, int, struct tree *, int*));
+-static struct tree * __tag2oid _((char *, char *, oid *, int *, int *, int));
+-static int __concat_oid_str _((oid *, int *, char *));
++static struct tree * __tag2oid _((char *, char *, oid *, size_t *, int *, int));
++static int __concat_oid_str _((oid *, size_t *, char *));
+ static int __add_var_val_str _((netsnmp_pdu *, oid *, int, char *,
+ int, int));
+ static int __send_sync_pdu _((netsnmp_session *, netsnmp_pdu *,
+@@ -565,7 +565,7 @@ static int
+ __scan_num_objid (buf, objid, len)
+ char *buf;
+ oid *objid;
+-int *len;
++size_t *len;
+ {
+ char *cp;
+ *len = 0;
+@@ -818,7 +818,7 @@ __tag2oid(tag, iid, oid_arr, oid_arr_len
+ char * tag;
+ char * iid;
+ oid * oid_arr;
+-int * oid_arr_len;
++size_t * oid_arr_len;
+ int * type;
+ int best_guess;
+ {
+@@ -826,7 +826,7 @@ int best_guess;
+ struct tree *rtp = NULL;
+ DLL_IMPORT extern struct tree *tree_head;
+ oid newname[MAX_OID_LEN], *op;
+- int newname_len = 0;
++ size_t newname_len = 0;
+
+ if (type) *type = TYPE_UNKNOWN;
+ if (oid_arr_len) *oid_arr_len = 0;
+@@ -926,7 +926,7 @@ found:
+ static int
+ __concat_oid_str(doid_arr, doid_arr_len, soid_str)
+ oid *doid_arr;
+-int *doid_arr_len;
++size_t *doid_arr_len;
+ char * soid_str;
+ {
+ char soid_buf[STR_BUF_SIZE];
+@@ -2794,7 +2794,10 @@ snmp_read_mib(mib_file, force=0)
+ if (verbose) warn("failed\n");
+ }
+ }
+- RETVAL = (I32)Mib;
++ if (Mib)
++ RETVAL = (I32)1;
++ else
++ RETVAL = (I32)0;
+ }
+ OUTPUT:
+ RETVAL
+@@ -2817,7 +2820,10 @@ snmp_read_module(module)
+ } else {
+ if (verbose) warn("Failed reading %s\n", module);
+ }
+- RETVAL = (I32)Mib;
++ if (Mib)
++ RETVAL = (I32)1;
++ else
++ RETVAL = (I32)0;
+ }
+ OUTPUT:
+ RETVAL
+@@ -2840,7 +2846,7 @@ snmp_set(sess_ref, varlist_ref, perl_cal
+ netsnmp_pdu *pdu, *response;
+ struct tree *tp;
+ oid *oid_arr;
+- int oid_arr_len = MAX_OID_LEN;
++ size_t oid_arr_len = MAX_OID_LEN;
+ char *tag_pv;
+ snmp_xs_cb_data *xs_cb_data;
+ SV **sess_ptr_sv;
+@@ -3035,7 +3041,7 @@ snmp_get(sess_ref, retry_nosuch, varlist
+ struct tree *tp;
+ int len;
+ oid *oid_arr = NULL;
+- int oid_arr_len = MAX_OID_LEN;
++ size_t oid_arr_len = MAX_OID_LEN;
+ SV *tmp_sv;
+ char *tag_pv;
+ int type;
+@@ -3188,7 +3194,7 @@ snmp_getnext(sess_ref, varlist_ref, perl
+ struct tree *tp;
+ int len;
+ oid *oid_arr;
+- int oid_arr_len = MAX_OID_LEN;
++ size_t oid_arr_len = MAX_OID_LEN;
+ SV *tmp_sv;
+ int type;
+ char tmp_type_str[MAX_TYPE_NAME_LEN];
+@@ -3394,7 +3400,7 @@ snmp_getbulk(sess_ref, nonrepeaters, max
+ struct tree *tp;
+ int len;
+ oid *oid_arr;
+- int oid_arr_len = MAX_OID_LEN;
++ size_t oid_arr_len = MAX_OID_LEN;
+ SV *tmp_sv;
+ int type;
+ char tmp_type_str[MAX_TYPE_NAME_LEN];
+@@ -3599,7 +3605,7 @@ snmp_bulkwalk(sess_ref, nonrepeaters, ma
+ netsnmp_session *ss;
+ netsnmp_pdu *pdu = NULL;
+ oid oid_arr[MAX_OID_LEN];
+- int oid_arr_len;
++ size_t oid_arr_len;
+ SV **sess_ptr_sv;
+ SV **err_str_svp;
+ SV **err_num_svp;
+@@ -3813,9 +3819,9 @@ snmp_bulkwalk(sess_ref, nonrepeaters, ma
+ }
+
+ /* Sent okay... Return the request ID in 'pdu' as an SvIV. */
+- DBPRT(1,( "Okay, request id is %d\n", (int)pdu));
++/* DBPRT(1,( "Okay, request id is %d\n", (int)pdu)); */
+ /* XSRETURN_IV((int)pdu); */
+- XPUSHs(sv_2mortal(newSViv((int)pdu)));
++ XPUSHs(sv_2mortal(newSViv((IV)pdu)));
+ XSRETURN(1);
+ }
+
+@@ -3908,7 +3914,7 @@ snmp_trapV1(sess_ref,enterprise,agent,ge
+ netsnmp_pdu *pdu = NULL;
+ struct tree *tp;
+ oid *oid_arr;
+- int oid_arr_len = MAX_OID_LEN;
++ size_t oid_arr_len = MAX_OID_LEN;
+ SV **sess_ptr_sv;
+ SV **err_str_svp;
+ SV **err_num_svp;
+@@ -4045,7 +4051,7 @@ snmp_trapV2(sess_ref,uptime,trap_oid,var
+ netsnmp_pdu *pdu = NULL;
+ struct tree *tp;
+ oid *oid_arr;
+- int oid_arr_len = MAX_OID_LEN;
++ size_t oid_arr_len = MAX_OID_LEN;
+ SV **sess_ptr_sv;
+ SV **err_str_svp;
+ SV **err_num_svp;
+@@ -4180,7 +4186,7 @@ snmp_inform(sess_ref,uptime,trap_oid,var
+ netsnmp_pdu *response;
+ struct tree *tp;
+ oid *oid_arr;
+- int oid_arr_len = MAX_OID_LEN;
++ size_t oid_arr_len = MAX_OID_LEN;
+ snmp_xs_cb_data *xs_cb_data;
+ SV **sess_ptr_sv;
+ SV **err_str_svp;
+@@ -4405,7 +4411,7 @@ snmp_translate_obj(var,mode,use_long,aut
+ {
+ char str_buf[STR_BUF_SIZE];
+ oid oid_arr[MAX_OID_LEN];
+- int oid_arr_len = MAX_OID_LEN;
++ size_t oid_arr_len = MAX_OID_LEN;
+ char * label;
+ char * iid;
+ int status = FAILURE;
diff --git a/net/p5-SNMP/patches/patch-ac b/net/p5-SNMP/patches/patch-ac
index ac873584093..83bc1aa7273 100644
--- a/net/p5-SNMP/patches/patch-ac
+++ b/net/p5-SNMP/patches/patch-ac
@@ -1,20 +1,61 @@
-$NetBSD: patch-ac,v 1.1 2001/01/30 22:03:40 wrstuden Exp $
+$NetBSD: patch-ac,v 1.2 2004/02/13 17:46:22 seb Exp $
---- t/mib.t.orig Tue Jan 30 05:15:44 2001
-+++ t/mib.t Tue Jan 30 05:16:19 2001
-@@ -147,13 +147,13 @@
- ###################### 15 #########################
- $res = $SNMP::MIB{atNetAddress}{nextNode};
- #print("res is --> $res\n");
--ok($res =~ /^HASH/);
-+ok(ref($res) eq HASH);
- #print("\n");
+--- agent/agent.xs.orig Thu May 8 23:15:40 2003
++++ agent/agent.xs
+@@ -214,19 +214,19 @@ handler_wrapper(netsnmp_mib_handler
+ PUSHMARK(sp);
+ rarg = newSViv(0);
+ arg = newSVrv(rarg, "NetSNMP::agent::netsnmp_mib_handler");
+- sv_setiv(arg, (int) handler);
++ sv_setiv(arg, (IV) handler);
+ XPUSHs(rarg);
+ rarg = newSViv(0);
+ arg = newSVrv(rarg, "NetSNMP::agent::reginfo");
+- sv_setiv(arg, (int) reginfo);
++ sv_setiv(arg, (IV) reginfo);
+ XPUSHs(rarg);
+ rarg = newSViv(0);
+ arg = newSVrv(rarg, "NetSNMP::agent::netsnmp_agent_request_info");
+- sv_setiv(arg, (int) reqinfo);
++ sv_setiv(arg, (IV) reqinfo);
+ XPUSHs(rarg);
+ rarg = newSViv(0);
+ arg = newSVrv(rarg, "NetSNMP::agent::netsnmp_request_infoPtr");
+- sv_setiv(arg, (int) requests);
++ sv_setiv(arg, (IV) requests);
+ XPUSHs(rarg);
+ PUTBACK;
+ if (SvTYPE(cb) == SVt_PVCV) {
+@@ -372,9 +372,9 @@ nsahr_getRootOID(me)
+ memcpy(o->name, reginfo->rootoid,
+ reginfo->rootoid_len * sizeof(oid));
- ######################## 16 #########################
- $res = $SNMP::MIB{sysDescr}{children};
- #print("res is --> $res\n");
--ok($res =~ /^ARRAY/);
-+ok(ref($res) eq ARRAY);
- #print("\n");
- #################### 17 #########################
-
+- rarg = newSViv((int) 0);
++ rarg = newSViv((IV) 0);
+ arg = newSVrv(rarg, "netsnmp_oidPtr");
+- sv_setiv(arg, (int) o);
++ sv_setiv(arg, (IV) o);
+
+ XPUSHs(rarg);
+
+@@ -411,9 +411,9 @@ getOID(me)
+ memcpy(o->name, request->requestvb->name,
+ request->requestvb->name_length * sizeof(oid));
+
+- rarg = newSViv((int) 0);
++ rarg = newSViv((IV) 0);
+ arg = newSVrv(rarg, "netsnmp_oidPtr");
+- sv_setiv(arg, (int) o);
++ sv_setiv(arg, (IV) o);
+
+ XPUSHs(rarg);
+
+@@ -754,7 +754,7 @@ nari_next(me)
+ request = request->next;
+ rarg = newSViv(0);
+ arg = newSVrv(rarg, "NetSNMP::agent::netsnmp_request_infoPtr");
+- sv_setiv(arg, (int) request);
++ sv_setiv(arg, (IV) request);
+ ST(0) = rarg;
+ } else {
+ ST(0) = &sv_undef;