rpms/net-snmp/FC-3 net-snmp-5.1.2-ASN-unsigned64.patch, NONE, 1.1 net-snmp-5.1.2-agentx_register_callbacks_entry.patch, NONE, 1.1 net-snmp-5.1.2-conf_list.patch, NONE, 1.1 net-snmp-5.1.2-dir-fix.patch, NONE, 1.1 net-snmp-5.2-64bit.diff, NONE, 1.1 net-snmp-5.2-ipsystemstats.patch, NONE, 1.1 net-snmp-5.2.1-file_offset.patch, NONE, 1.1 net-snmp-5.2.1-trim.patch, NONE, 1.1 net-snmp-5.2.1-typeclash.diff, NONE, 1.1 .cvsignore, 1.7, 1.8 net-snmp-5.1-64bit.patch, 1.2, 1.3 net-snmp-5.1.1-ipAdEntIfIndex.patch, 1.1, 1.2 net-snmp.spec, 1.24, 1.25 sources, 1.7, 1.8

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Apr 25 07:56:56 UTC 2005


Author: rvokal

Update of /cvs/dist/rpms/net-snmp/FC-3
In directory cvs.devel.redhat.com:/tmp/cvs-serv12430

Modified Files:
	.cvsignore net-snmp-5.1-64bit.patch 
	net-snmp-5.1.1-ipAdEntIfIndex.patch net-snmp.spec sources 
Added Files:
	net-snmp-5.1.2-ASN-unsigned64.patch 
	net-snmp-5.1.2-agentx_register_callbacks_entry.patch 
	net-snmp-5.1.2-conf_list.patch net-snmp-5.1.2-dir-fix.patch 
	net-snmp-5.2-64bit.diff net-snmp-5.2-ipsystemstats.patch 
	net-snmp-5.2.1-file_offset.patch net-snmp-5.2.1-trim.patch 
	net-snmp-5.2.1-typeclash.diff 
Log Message:

 - new upstream version, fixing several issues	
 - fixed missing requires for devel package (#155221)
 - 64bit problems are hopefully gone for a while
 - net-snmp properly deals with large partitions (#153101) <jryska at redhat.com>
 - agentx double free error fix <jp.fujitsu>
 - fixed unexpected length for type ASN_UNSIGNED (#151892)
 - fixed uptime problems on ia64
 - patch from CVS - kill extra carriage return (#144917)
 - removed patch for interface indexing - doesn't show virtual interfaces
 - pointer needs to be inicialized (#146417)
 - snmpd crash with 'interfaces' directives in snmpd.conf fixed (#139010)



net-snmp-5.1.2-ASN-unsigned64.patch:
 snmp_api.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletion(-)

--- NEW FILE net-snmp-5.1.2-ASN-unsigned64.patch ---
--- net-snmp-5.1.2/snmplib/snmp_api.c.ASN-unsigned64	2004-06-21 12:02:15.000000000 +0200
+++ net-snmp-5.1.2/snmplib/snmp_api.c	2005-02-15 18:13:50.694158600 +0100
@@ -6267,6 +6267,23 @@
     vars->val_len = len;
     switch (type) {
     case ASN_INTEGER:
+        if (value) {
+            if (largeval) {
+                snmp_log(LOG_ERR,"bad size for integer-like type (%d)\n",
+                         vars->val_len);
+                snmp_free_var(vars);
+                return (0);
+            } else if (vars->val_len == sizeof(int)) {
+                val_int = (const int *) value;
+                *(vars->val.integer) = (long) *val_int;
+            } else {
+                val_long = (const long *) value;
+                *(vars->val.integer) = *val_long;
+            }
+        }
+        vars->val_len = sizeof(long);
+        break;
+
     case ASN_UNSIGNED:
     case ASN_TIMETICKS:
     case ASN_IPADDRESS:
@@ -6279,7 +6296,7 @@
                 return (0);
             } else if (vars->val_len == sizeof(int)) {
                 val_int = (const int *) value;
-                *(vars->val.integer) = (long) *val_int;
+                *(vars->val.integer) = (long) *(const unsigned int *)val_int;
             } else {
                 val_long = (const long *) value;
                 *(vars->val.integer) = *val_long;

net-snmp-5.1.2-agentx_register_callbacks_entry.patch:
 subagent.c |   26 ++++++++++++++++++++------
 1 files changed, 20 insertions(+), 6 deletions(-)

--- NEW FILE net-snmp-5.1.2-agentx_register_callbacks_entry.patch ---
diff -Naurp net-snmp-5.1.2/agent/mibgroup/agentx/subagent.c net-snmp-5.1.2.new/agent/mibgroup/agentx/subagent.c
--- net-snmp-5.1.2/agent/mibgroup/agentx/subagent.c	2004-03-05 13:33:39.000000000 +0900
+++ net-snmp-5.1.2.new/agent/mibgroup/agentx/subagent.c	2005-03-30 15:51:57.974419037 +0900
@@ -624,26 +624,40 @@ subagent_shutdown(int majorID, int minor
 void
 agentx_register_callbacks(netsnmp_session * s)
 {
+    char *fp;
+    netsnmp_session *ns; 
     DEBUGMSGTL(("agentx/subagent",
                 "registering callbacks for session %p\n", s));
+    ns= SNMP_MALLOC_TYPEDEF(netsnmp_session);
+    memcpy(ns, s, sizeof(netsnmp_session));
     snmp_register_callback(SNMP_CALLBACK_LIBRARY,
                            SNMP_CALLBACK_POST_READ_CONFIG,
-                           subagent_register_ping_alarm, s);
+                           subagent_register_ping_alarm, ns);
+    ns= SNMP_MALLOC_TYPEDEF(netsnmp_session);
+    memcpy(ns, s, sizeof(netsnmp_session));
     snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SHUTDOWN,
-                           subagent_shutdown, s);
+                           subagent_shutdown, ns);
+    ns= SNMP_MALLOC_TYPEDEF(netsnmp_session);
+    memcpy(ns, s, sizeof(netsnmp_session));
     snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                            SNMPD_CALLBACK_REGISTER_OID,
-                           agentx_registration_callback, s);
+                           agentx_registration_callback, ns);
+    ns= SNMP_MALLOC_TYPEDEF(netsnmp_session);
+    memcpy(ns, s, sizeof(netsnmp_session));
     snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                            SNMPD_CALLBACK_UNREGISTER_OID,
-                           agentx_registration_callback, s);
+                           agentx_registration_callback, ns);
 #ifdef USING_MIBII_SYSORTABLE_MODULE
+    ns= SNMP_MALLOC_TYPEDEF(netsnmp_session);
+    memcpy(ns, s, sizeof(netsnmp_session));
     snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                            SNMPD_CALLBACK_REG_SYSOR,
-                           agentx_sysOR_callback, s);
+                           agentx_sysOR_callback, ns);
+    ns= SNMP_MALLOC_TYPEDEF(netsnmp_session);
+    memcpy(ns, s, sizeof(netsnmp_session));
     snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                            SNMPD_CALLBACK_UNREG_SYSOR,
-                           agentx_sysOR_callback, s);
+                           agentx_sysOR_callback, ns);
 #endif
 }
 

net-snmp-5.1.2-conf_list.patch:
 hr_disk.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE net-snmp-5.1.2-conf_list.patch ---
diff -ruN net-snmp-5.1.2-vanilla/agent/mibgroup/host/hr_disk.c net-snmp-5.1.2/agent/mibgroup/host/hr_disk.c
--- net-snmp-5.1.2-vanilla/agent/mibgroup/host/hr_disk.c	2004-07-02 08:50:19.000000000 -0500
+++ net-snmp-5.1.2/agent/mibgroup/host/hr_disk.c	2005-01-27 17:11:32.527608800 -0600
@@ -232,7 +232,7 @@
     conf_disk_item *list_item;
     struct _conf_disk_list *list_next;
 } conf_disk_list;
-static conf_disk_list *conf_list;
+static conf_disk_list *conf_list = NULL;
 
 static int      match_disk_config(const char *);
 static int      match_disk_config_item(const char *, conf_disk_item *);

net-snmp-5.1.2-dir-fix.patch:
 net-snmp-config.in |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE net-snmp-5.1.2-dir-fix.patch ---
--- net-snmp-5.1.2/net-snmp-config.in.dir-fix	2004-06-17 15:39:28.000000000 +0200
+++ net-snmp-5.1.2/net-snmp-config.in	2004-11-16 10:26:28.928414992 +0100
@@ -249,7 +249,7 @@
       echo "  " $line
       echo $line >> $outfile
 
-      outfile="@datadir@/snmp/snmpd.conf"
+      outfile="/etc/snmp/snmpd.conf"
       line="$token $user"
       echo "adding the following line to $outfile:"
       echo "  " $line

net-snmp-5.2-64bit.diff:
 mibII/at.c                      |   17 +++++++++--------
 mibII/ipAddr.c                  |   15 +++++++++------
 mibII/ipCidrRouteTable_access.c |   19 ++++++++++---------
 mibII/var_route.c               |   22 +++++++++++++---------
 ucd-snmp/pass.c                 |    9 +++++----
 ucd-snmp/pass_persist.c         |    9 +++++----
 6 files changed, 51 insertions(+), 40 deletions(-)

--- NEW FILE net-snmp-5.2-64bit.diff ---
--- agent/mibgroup/mibII/at.c
+++ agent/mibgroup/mibII/at.c
@@ -117,9 +117,9 @@
 #ifndef solaris2
 static void     ARP_Scan_Init(void);
 #ifdef ARP_SCAN_FOUR_ARGUMENTS
-static int      ARP_Scan_Next(u_long *, char *, u_long *, u_short *);
+static int      ARP_Scan_Next(u_int *, char *, u_long *, u_short *);
 #else
-static int      ARP_Scan_Next(u_long *, char *, u_long *);
+static int      ARP_Scan_Next(u_int *, char *, u_long *);
 #endif
 #endif
 #endif
@@ -195,7 +195,8 @@
     oid             lowest[16];
     oid             current[16];
     static char     PhysAddr[6], LowPhysAddr[6];
-    u_long          Addr, LowAddr, foundone;
+    u_int          Addr, LowAddr, foundone;
+    static int      addr_ret;
 #ifdef ARP_SCAN_FOUR_ARGUMENTS
     u_short         ifIndex, lowIfIndex = 0;
 #endif                          /* ARP_SCAN_FOUR_ARGUMENTS */
@@ -305,9 +306,9 @@
         *var_len = sizeof(LowPhysAddr);
         return (u_char *) LowPhysAddr;
     case IPMEDIANETADDRESS:    /* also ATNETADDRESS */
-        *var_len = sizeof long_return;
-        long_return = LowAddr;
-        return (u_char *) & long_return;
+        *var_len = sizeof addr_ret;
+        addr_ret = LowAddr;
+        return (u_char *) & addr_ret;
     case IPMEDIATYPE:
         *var_len = sizeof long_return;
         long_return = lowIfType;
@@ -676,11 +677,11 @@
 
 #ifdef ARP_SCAN_FOUR_ARGUMENTS
 static int
-ARP_Scan_Next(u_long * IPAddr, char *PhysAddr, u_long * ifType,
+ARP_Scan_Next(u_int * IPAddr, char *PhysAddr, u_long * ifType,
               u_short * ifIndex)
 #else
 static int
-ARP_Scan_Next(u_long * IPAddr, char *PhysAddr, u_long * ifType)
+ARP_Scan_Next(u_int * IPAddr, char *PhysAddr, u_long * ifType)
 #endif
 {
 #ifndef CAN_USE_SYSCTL
--- agent/mibgroup/mibII/ipAddr.c
+++ agent/mibgroup/mibII/ipAddr.c
@@ -188,6 +188,7 @@
     static struct in_ifaddr in_ifaddr, lowin_ifaddr;
 #else
     static struct ifnet lowin_ifnet;
+    static in_addr_t addr_ret;
 #endif
     static struct ifnet ifnet;
 #endif                          /* hpux11 */
@@ -282,9 +283,10 @@
     *var_len = sizeof(long_return);
     switch (vp->magic) {
     case IPADADDR:
+	*var_len = sizeof(addr_ret);
 #ifdef hpux11
-        long_return = lowin_ifaddr.Addr;
-        return (u_char *) & long_return;
+        addr_ret = lowin_ifaddr.Addr;
+        return (u_char *) & addr_ret;
 #elif defined(linux) || defined(sunV3)
         return (u_char *) & ((struct sockaddr_in *) &lowin_ifnet.if_addr)->
             sin_addr.s_addr;
@@ -296,15 +298,16 @@
         long_return = lowinterface;
         return (u_char *) & long_return;
     case IPADNETMASK:
+	*var_len = sizeof(addr_ret);
 #ifdef hpux11
-        long_return = lowin_ifaddr.NetMask;
-        return (u_char *) & long_return;
+        addr_ret = lowin_ifaddr.NetMask;
+        return (u_char *) & addr_ret;
 #elif defined(linux)
         return (u_char *) & ((struct sockaddr_in *) &lowin_ifnet.
                              ia_subnetmask)->sin_addr.s_addr;
 #elif !defined(sunV3)
-        long_return = lowin_ifaddr.ia_subnetmask;
-        return (u_char *) & long_return;
+        addr_ret = lowin_ifaddr.ia_subnetmask;
+        return (u_char *) & addr_ret;
 #endif
     case IPADBCASTADDR:
 #ifdef hpux11
--- agent/mibgroup/mibII/ipCidrRouteTable_access.c
+++ agent/mibgroup/mibII/ipCidrRouteTable_access.c
@@ -22,6 +22,7 @@
 /** a global static we'll make use of a lot to map to the right
    datatype to return (which for SNMP integer's is always a long). */
 static u_long long_ret;
+static in_addr_t addr_ret;
   
 
 /*
@@ -32,18 +33,18 @@
 get_ipCidrRouteDest(void *data_context, size_t * ret_len)
 {
     RTENTRY *ourroute = (RTENTRY *) data_context;
-    long_ret = ((struct sockaddr_in *) (&ourroute->rt_dst))->sin_addr.s_addr;
-    *ret_len = sizeof(long_ret);
-    return &long_ret;
+    addr_ret = ((struct sockaddr_in *) (&ourroute->rt_dst))->sin_addr.s_addr;
+    *ret_len = sizeof(addr_ret);
+    return &addr_ret;
 }
 
 u_long         *
 get_ipCidrRouteMask(void *data_context, size_t * ret_len)
 {
     RTENTRY *ourroute = (RTENTRY *) data_context;
-    long_ret = ((struct sockaddr_in *) (&ourroute->rt_genmask))->sin_addr.s_addr;
-    *ret_len = sizeof(long_ret);
-    return &long_ret;
+    addr_ret = ((struct sockaddr_in *) (&ourroute->rt_genmask))->sin_addr.s_addr;
+    *ret_len = sizeof(addr_ret);
+    return &addr_ret;
 }
 
 long           *
@@ -59,9 +60,9 @@
 get_ipCidrRouteNextHop(void *data_context, size_t * ret_len)
 {
     RTENTRY *ourroute = (RTENTRY *) data_context;
-    long_ret = ((struct sockaddr_in *) (&ourroute->rt_gateway))->sin_addr.s_addr;
-    *ret_len = sizeof(long_ret);
-    return &long_ret;
+    addr_ret = ((struct sockaddr_in *) (&ourroute->rt_gateway))->sin_addr.s_addr;
+    *ret_len = sizeof(addr_ret);
+    return &addr_ret;
 }
 
 long           *
--- agent/mibgroup/mibII/var_route.c
+++ agent/mibgroup/mibII/var_route.c
@@ -412,6 +412,7 @@
     static oid      saveName[MAX_OID_LEN], Current[MAX_OID_LEN];
     u_char         *cp;
     oid            *op;
+    static         in_addr_t addr_ret;
 #if NEED_KLGETSA
     struct sockaddr_in *sa;
 #endif
@@ -514,12 +515,13 @@
 
     switch (vp->magic) {
     case IPROUTEDEST:
+	*var_len = sizeof(addr_ret);
 #if NEED_KLGETSA
         sa = klgetsa((struct sockaddr_in *) rthead[RtIndex]->rt_dst);
         return (u_char *) & (sa->sin_addr.s_addr);
 #elif defined(hpux11)
-        long_return = rt[RtIndex].Dest;
-        return (u_char *) & long_return;
+        addr_ret = rt[RtIndex].Dest;
+        return (u_char *) & addr_ret;
 #else
         return (u_char *) & ((struct sockaddr_in *) &rthead[RtIndex]->
                              rt_dst)->sin_addr.s_addr;
@@ -572,12 +574,13 @@
         long_return = -1;
         return (u_char *) & long_return;
     case IPROUTENEXTHOP:
+	*var_len = sizeof(addr_ret);
 #if NEED_KLGETSA
         sa = klgetsa((struct sockaddr_in *) rthead[RtIndex]->rt_gateway);
         return (u_char *) & (sa->sin_addr.s_addr);
 #elif defined(hpux11)
-        long_return = rt[RtIndex].NextHop;
-        return (u_char *) & long_return;
+        addr_ret = rt[RtIndex].NextHop;
+        return (u_char *) & addr_ret;
 #else
         return (u_char *) & ((struct sockaddr_in *) &rthead[RtIndex]->
                              rt_gateway)->sin_addr.s_addr;
@@ -614,6 +617,7 @@
         long_return = 0;
         return (u_char *) & long_return;
     case IPROUTEMASK:
+	*var_len = sizeof(addr_ret);
 #if NEED_KLGETSA
         /*
          * XXX - Almost certainly not right
@@ -622,14 +626,14 @@
 #if NO_DUMMY_VALUES
         return NULL;
 #endif
-        long_return = 0;
+        addr_ret = 0;
 #elif defined(hpux11)
-        long_return = rt[RtIndex].Mask;
-        return (u_char *) & long_return;
+        addr_ret = rt[RtIndex].Mask;
+        return (u_char *) & addr_ret;
 #else                           /* !NEED_KLGETSA && !hpux11 */
         if (((struct sockaddr_in *) &rthead[RtIndex]->rt_dst)->sin_addr.
             s_addr == 0)
-            long_return = 0;    /* Default route */
+            addr_ret = 0;    /* Default route */
         else {
 #ifndef linux
             klookup((unsigned long) rthead[RtIndex]->rt_ifp,
@@ -648,7 +652,7 @@
 #endif                          /* linux */
         }
 #endif                          /* NEED_KLGETSA */
-        return (u_char *) & long_return;
+        return (u_char *) & addr_ret;
     case IPROUTEINFO:
         *var_len = nullOidLen;
         return (u_char *) nullOid;
--- agent/mibgroup/ucd-snmp/pass.c
+++ agent/mibgroup/ucd-snmp/pass.c
@@ -251,6 +251,7 @@
     oid             newname[MAX_OID_LEN];
     int             i, rtest, fd, newlen;
     static long     long_ret;
+    static in_addr_t addr_ret;
     char            buf[SNMP_MAXBUF];
     static char     buf2[SNMP_MAXBUF];
     static oid      objid[MAX_OID_LEN];
@@ -373,13 +374,13 @@
                         *var_len = 0;
                         return (NULL);
                     }
-                    long_ret =
+                    addr_ret =
                         (objid[0] << (8 * 3)) + (objid[1] << (8 * 2)) +
                         (objid[2] << 8) + objid[3];
-                    long_ret = htonl(long_ret);
-                    *var_len = sizeof(long_ret);
+                    addr_ret = htonl(addr_ret);
+                    *var_len = sizeof(addr_ret);
                     vp->type = ASN_IPADDRESS;
-                    return ((unsigned char *) &long_ret);
+                    return ((unsigned char *) &addr_ret);
                 }
             }
             *var_len = 0;
--- agent/mibgroup/ucd-snmp/pass_persist.c
+++ agent/mibgroup/ucd-snmp/pass_persist.c
@@ -184,6 +184,7 @@
     oid             newname[MAX_OID_LEN];
     int             i, rtest, newlen;
     static long     long_ret;
+    static in_addr_t addr_ret;
     char            buf[SNMP_MAXBUF];
     static char     buf2[SNMP_MAXBUF];
     static oid      objid[MAX_OID_LEN];
@@ -329,13 +330,13 @@
                         *var_len = 0;
                         return (NULL);
                     }
-                    long_ret =
+                    addr_ret =
                         (objid[0] << (8 * 3)) + (objid[1] << (8 * 2)) +
                         (objid[2] << 8) + objid[3];
-                    long_ret = htonl(long_ret);
-                    *var_len = sizeof(long_ret);
+                    addr_ret = htonl(addr_ret);
+                    *var_len = sizeof(addr_ret);
                     vp->type = ASN_IPADDRESS;
-                    return ((unsigned char *) &long_ret);
+                    return ((unsigned char *) &addr_ret);
                 }
             }
             *var_len = 0;

net-snmp-5.2-ipsystemstats.patch:
 systemstats_linux.c |  202 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 187 insertions(+), 15 deletions(-)

--- NEW FILE net-snmp-5.2-ipsystemstats.patch ---
--- net-snmp-5.2/agent/mibgroup/ip-mib/data_access/systemstats_linux.c.ipstats	2004-12-27 11:37:52.119373472 +0100
+++ net-snmp-5.2/agent/mibgroup/ip-mib/data_access/systemstats_linux.c	2004-12-27 11:38:08.927818200 +0100
@@ -10,6 +10,10 @@
 #include <net-snmp/data_access/ipstats.h>
 #include <net-snmp/data_access/systemstats.h>
 
+static int _systemstats_v4(netsnmp_container* container, u_int load_flags);
+static int _systemstats_v6(netsnmp_container* container, u_int load_flags);
+
+
 void
 netsnmp_access_systemstats_arch_init(void)
 {
@@ -39,7 +43,7 @@
  *
  * @retval  0 success
  * @retval -1 no container specified
- * @retval -2 could not open /proc/net/dev
+ * @retval -2 could not open file
  * @retval -3 could not create entry (probably malloc)
  * @retval -4 file format error
  */
@@ -47,21 +51,42 @@
 netsnmp_access_systemstats_container_arch_load(netsnmp_container* container,
                                              u_int load_flags)
 {
+    int rc1,rc2;
+
+    if (NULL == container) {
+        snmp_log(LOG_ERR, "no container specified/found for access_systemstats_\n");
+        return -1;
+    }
+
+    /*
+     * load v4 and v6 stats. Even if one fails, try the other.
+     * If they have the same rc, return it. if the differ, return
+     * the smaller one. No log messages, since each individual function
+     * would have logged its own message.
+     */
+    rc1 = _systemstats_v4(container, load_flags);
+    rc2 = _systemstats_v6(container, load_flags);
+    if ((rc1 == rc2) || (rc1 < rc2))
+        return rc1;
+        
+    return rc2;
+}
+
+static int
+_systemstats_v4(netsnmp_container* container, u_int load_flags)
+{
     FILE           *devin;
     char            line[1024];
     netsnmp_systemstats_entry *entry = NULL;
     int             scan_count;
     char           *stats, *start = line;
     int             len;
-    uintmax_t       scan_vals[26];
+    uintmax_t       scan_vals[19];
 
-    DEBUGMSGTL(("access:systemstats:container:arch", "load (flags %p)\n",
+    DEBUGMSGTL(("access:systemstats:container:arch", "load v4 (flags %p)\n",
                 load_flags));
 
-    if (NULL == container) {
-        snmp_log(LOG_ERR, "no container specified/found for access_systemstats_\n");
-        return -1;
-    }
+    netsnmp_assert(container != NULL); /* load function shoulda checked this */
 
     if (!(devin = fopen("/proc/net/snmp", "r"))) {
         DEBUGMSGTL(("access:systemstats",
@@ -109,7 +134,7 @@
         while (*stats == ' ') /* skip spaces before stats */
             stats++;
 
-        entry = netsnmp_access_systemstats_entry_create(4);
+        entry = netsnmp_access_systemstats_entry_create(1);
         if(NULL == entry) {
             netsnmp_access_systemstats_container_free(container,
                                                       NETSNMP_ACCESS_SYSTEMSTATS_FREE_NOFLAGS);
@@ -167,13 +192,6 @@
         entry->stats.OutFragOKs = scan_vals[16];
         entry->stats.OutFragFails = scan_vals[17];
         entry->stats.OutFragCreates = scan_vals[18];
-#if 0
-        entry->stats.ibytes.low = rec_oct & 0xffffffff;
-        entry->stats.ibytes.high = rec_oct >> 32;
-#endif
-        /*
-         * calculated stats.
-         */
 
         /*
          * add to container
@@ -182,3 +200,157 @@
     }
     return 0;
 }
+    
+static int
+_systemstats_v6(netsnmp_container* container, u_int load_flags)
+{
+    FILE           *devin;
+    char            line[1024];
+    netsnmp_systemstats_entry *entry = NULL;
+    int             scan_count = 0;
+    char           *stats, *start = line;
+    int             len, rc;
+    uintmax_t       scan_val;
+    const char     *filename = "/proc/net/snmp6";
+
+    DEBUGMSGTL(("access:systemstats:container:arch", "load v6 (flags %p)\n",
+                load_flags));
+
+    netsnmp_assert(container != NULL); /* load function shoulda checked this */
+
+    entry = netsnmp_access_systemstats_entry_create(2);
+    if(NULL == entry)
+        return -3;
+    
+    if (!(devin = fopen(filename, "r"))) {
+        DEBUGMSGTL(("access:systemstats",
+                    "Failed to load Systemstats Table (linux1)\n"));
+        snmp_log(LOG_ERR, "cannot open %s ...\n", filename);
+        free(entry);
+        return -2;
+    }
+
+    /*
+     * This file provides the statistics for each systemstats.
+     * Read in each line in turn, isolate the systemstats name
+     *   and retrieve (or create) the corresponding data structure.
+     */
+    while (1) {
+        start = fgets(line, sizeof(line), devin);
+        if (NULL == start)
+            break;
+
+        len = strlen(line);
+        if (line[len - 1] == '\n')
+            line[len - 1] = '\0';
+
+        if (('I' != line[0]) || ('6' != line[2]))
+            continue;
+
+        stats = strrchr(line, ' ');
+        if (NULL == stats) {
+            snmp_log(LOG_ERR,
+                     "systemstats data format error 1, line ==|%s|\n", line);
+            continue;
+        }
+
+        DEBUGMSGTL(("access:systemstats", "processing '%s'\n", line));
+
+        /*
+         * OK - we've now got (or created) the data structure for
+         *      this systemstats, including any "static" information.
+         * Now parse the rest of the line (i.e. starting from 'stats')
+         *      to extract the relevant statistics, and populate
+         *      data structure accordingly.
+         */
+        scan_val = atoll(stats);
+        if (0 == scan_val)
+            continue;
+
+        rc = 0;
+        if ('I' == line[3]) { /* In */
+            if ('A' == line[5]) {
+                entry->stats.InAddrErrors = scan_val;
+            } else if ('D' == line[5]) {
+                if ('e' == line[6]) {
+                    entry->stats.HCInDelivers.low = scan_val  & 0xffffffff;
+                    entry->stats.HCInDelivers.high = scan_val >> 32;
+                } else if ('i' == line[6])
+                    entry->stats.InDiscards = scan_val;
+                else
+                    rc = 1;
+            } else if ('H' == line[5]) {
+                entry->stats.InHdrErrors = scan_val;
+            } else if ('M' == line[5]) {
+                entry->stats.HCInMcastPkts.low = scan_val  & 0xffffffff;
+                entry->stats.HCInMcastPkts.high = scan_val >> 32;
+            } else if ('N' == line[5]) {
+                entry->stats.InNoRoutes = scan_val;
+            } else if ('R' == line[5]) {
+                entry->stats.HCInReceives.low = scan_val & 0xffffffff;
+                entry->stats.HCInReceives.high = scan_val >> 32;
+            } else if ('T' == line[5]) {
+                if ('r' == line[6]) {
+                    entry->stats.InTruncatedPkts = scan_val  & 0xffffffff;
+                } else if ('o' == line[6])
+                    ; /* TooBig isn't in the MIB, so ignore it */
+                else
+                    rc = 1;
+            } else if ('U' == line[5]) {
+                entry->stats.InUnknownProtos = scan_val;
+            } else
+                rc = 1;
+        } else if ('O' == line[3]) { /* Out */
+            if ('D' == line[6]) {
+                entry->stats.OutDiscards = scan_val;
+            } else if ('F' == line[6]) {
+                entry->stats.HCOutForwDatagrams.low = scan_val & 0xffffffff;
+                entry->stats.HCOutForwDatagrams.high = scan_val >> 32;
+            } else if ('M' == line[6]) {
+                entry->stats.HCOutMcastPkts.low = scan_val & 0xffffffff;
+                entry->stats.HCOutMcastPkts.high = scan_val >> 32;
+            } else if ('N' == line[6]) {
+                entry->stats.OutNoRoutes = scan_val;
+            } else if ('R' == line[6]) {
+                entry->stats.HCOutRequests.low = scan_val & 0xffffffff;
+                entry->stats.HCOutRequests.high = scan_val >> 32;
+            } else
+                rc = 1;
+        } else if ('R' == line[3]) { /* Reasm */
+            if ('F' == line[8]) {
+                entry->stats.ReasmFails = scan_val;
+            } else if ('O' == line[8]) {
+                entry->stats.ReasmOKs = scan_val;
+            } else if ('R' == line[8]) {
+                entry->stats.ReasmReqds = scan_val;
+            } else if ('T' == line[8]) {
+                ; /* no mib entry for reasm timeout */
+            } else
+                rc = 1;
+        } else if ('F' == line[3]) { /* Frag */
+            if ('C' == line[7])
+                entry->stats.OutFragCreates = scan_val;
+            else if ('O' == line[7])
+                entry->stats.OutFragOKs = scan_val;
+            else if ('F' == line[7])
+                entry->stats.OutFragFails = scan_val;
+            else
+                rc = 1;
+        } else
+            rc = 1;
+        
+        if (rc)
+            DEBUGMSGTL(("access:systemstats", "unknown stat %s\n", line));
+        else
+            ++scan_count;
+    }
+
+    fclose(devin);
+
+    /*
+     * add to container
+     */
+    CONTAINER_INSERT(container, entry);
+
+    return rc;
+}

net-snmp-5.2.1-file_offset.patch:
 agent/mibgroup/host/hr_filesys.c   |    2 +-
 agent/mibgroup/host/hr_filesys.h   |    2 +-
 agent/snmp_vars.c                  |    2 +-
 include/net-snmp/agent/snmp_vars.h |    2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

--- NEW FILE net-snmp-5.2.1-file_offset.patch ---
--- net-snmp-5.2.1/include/net-snmp/agent/snmp_vars.h.long	2004-04-15 14:47:10.000000000 +0200
+++ net-snmp-5.2.1/include/net-snmp/agent/snmp_vars.h	2005-03-21 17:03:29.909271960 +0100
@@ -73,7 +73,7 @@
 
     struct nlist;
 
-    extern long     long_return;
+    extern fsblkcnt_t long_return;
     extern u_char   return_buf[];
 
     extern oid      nullOid[];
--- net-snmp-5.2.1/agent/mibgroup/host/hr_filesys.c.long	2004-06-19 15:34:11.000000000 +0200
+++ net-snmp-5.2.1/agent/mibgroup/host/hr_filesys.c	2005-03-21 17:03:29.910271808 +0100
@@ -773,7 +773,7 @@
     return 0;
 }
 
-long
+fsblkcnt_t
 Get_FSSize(char *dev)
 {
     struct HRFS_statfs statfs_buf;
--- net-snmp-5.2.1/agent/mibgroup/host/hr_filesys.h.long	2002-07-04 14:56:35.000000000 +0200
+++ net-snmp-5.2.1/agent/mibgroup/host/hr_filesys.h	2005-03-21 17:03:29.910271808 +0100
@@ -12,7 +12,7 @@
 extern int      Check_HR_FileSys_NFS(void);
 
 extern int      Get_FSIndex(char *);
-extern long     Get_FSSize(char *);     /* Temporary */
+extern fsblkcnt_t     Get_FSSize(char *);     /* Temporary */
 
 
 #endif                          /* _MIBGROUP_HRFSYS_H */
--- net-snmp-5.2.1/agent/snmp_vars.c.long	2005-03-21 17:08:37.790466904 +0100
+++ net-snmp-5.2.1/agent/snmp_vars.c	2005-03-21 17:08:37.790466904 +0100
@@ -223,7 +223,7 @@
  * int      name_len        IN - number of sub-ids in the name
  */
 
-long            long_return;
+fsblkcnt_t            long_return;
 #ifndef ibm032
 u_char          return_buf[258];
 #else

net-snmp-5.2.1-trim.patch:
 mib.c |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

--- NEW FILE net-snmp-5.2.1-trim.patch ---
--- net-snmp/snmplib/mib.c.old	2004-12-29 21:21:27.000000000 +0100
+++ net-snmp/snmplib/mib.c	2005-02-10 13:22:32.000000000 +0100
@@ -317,8 +317,6 @@
         sprintf((char *) (*buf + *out_len), "]");
         *out_len += strlen((char *) (*buf + *out_len));
     }
-    *(*buf + (*out_len)++) = '\n';
-    *(*buf + *out_len) = 0;
     return 1;
 }
 
@@ -332,10 +330,16 @@
         line_len=len;
 
     for (; (int)len > line_len; len -= line_len) {
-        _sprint_hexstring_line(buf, buf_len, out_len, allow_realloc, cp, line_len);
+        if(!_sprint_hexstring_line(buf, buf_len, out_len, allow_realloc, cp, line_len))
+            return 0;
+        *(*buf + (*out_len)++) = '\n';
+        *(*buf + *out_len) = 0;
         cp += line_len;
     }
-    return _sprint_hexstring_line(buf, buf_len, out_len, allow_realloc, cp, len);
+    if(!_sprint_hexstring_line(buf, buf_len, out_len, allow_realloc, cp, len))
+        return 0;
+    *(*buf + *out_len) = 0;
+    return 1;
 }
 
 
@@ -3786,7 +3790,7 @@
     if (buf) {
         int             i, len;
         char            intbuf[64], * p;
-        int             zone;
+        unsigned long   zone;
 
         memset(intbuf, 0, 64);
 
@@ -3803,7 +3807,7 @@
                 len = sprintf(p, "%lu.%lu.%lu.%lu", objid[0], objid[1], objid[2], objid[3]);
                 p += len;
                 if (addr_type == IPV4Z) {
-                    zone = ntohl(*((int *) &(objid[4])));
+                    zone = ntohl((long)objid[4]);
                     len = sprintf(p, "%%%lu", zone);
                     p += len;
                 }
@@ -3818,13 +3822,13 @@
 
                 len = 0;
                 for (i = 0; i < 16; i ++) {
-                    len = snprintf(p, 4, "%02x:", objid[i]);
+                    len = snprintf(p, 4, "%02lx:", objid[i]);
                     p += len;
                 }
                 p-- ; /* do not include the last ':' */
 
                 if (addr_type == IPV6Z) {
-                    zone = ntohl(*((int *) &(objid[16])));
+                    zone = ntohl((long)objid[16]);
                     len = sprintf(p, "%%%lu", zone);
                     p += len;
                 }

net-snmp-5.2.1-typeclash.diff:
 scapi.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

--- NEW FILE net-snmp-5.2.1-typeclash.diff ---
--- snmplib/scapi.c
+++ snmplib/scapi.c
@@ -334,6 +334,7 @@
     int             rval = SNMPERR_SUCCESS;
     const EVP_MD         *hashfn;
     EVP_MD_CTX     ctx, *cptr;
+    unsigned int   tmp_len;
 #endif
 
     DEBUGTRACE;
@@ -379,13 +380,16 @@
 
 /** do the final pass */
 #if defined(OLD_DES)
-    EVP_DigestFinal(cptr, MAC, MAC_len);
+    EVP_DigestFinal(cptr, MAC, &tmp_len);
+    *MAC_len = tmp_len;
 #else /* !OLD_DES */
     if (SSLeay() < 0x907000) {
-        EVP_DigestFinal(cptr, MAC, MAC_len);
+        EVP_DigestFinal(cptr, MAC, &tmp_len);
+        *MAC_len = tmp_len;
         free(cptr);
     } else {
-        EVP_DigestFinal_ex(cptr, MAC, MAC_len);
+        EVP_DigestFinal_ex(cptr, MAC, &tmp_len);
+        *MAC_len = tmp_len;
         EVP_MD_CTX_cleanup(cptr);
     }
 #endif


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/net-snmp/FC-3/.cvsignore,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- .cvsignore	9 Sep 2004 09:13:26 -0000	1.7
+++ .cvsignore	25 Apr 2005 07:56:53 -0000	1.8
@@ -1 +1 @@
-net-snmp-5.1.2.tar.gz
+net-snmp-5.2.1.tar.gz

net-snmp-5.1-64bit.patch:
 mibII/at.c              |   17 +++++++++--------
 ucd-snmp/pass.c         |    9 +++++----
 ucd-snmp/pass_persist.c |    9 +++++----
 3 files changed, 19 insertions(+), 16 deletions(-)

Index: net-snmp-5.1-64bit.patch
===================================================================
RCS file: /cvs/dist/rpms/net-snmp/FC-3/net-snmp-5.1-64bit.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- net-snmp-5.1-64bit.patch	9 Sep 2004 09:13:01 -0000	1.2
+++ net-snmp-5.1-64bit.patch	25 Apr 2005 07:56:53 -0000	1.3
@@ -1,165 +1,3 @@
---- net-snmp-5.1/agent/mibgroup/mibII/var_route.c.64bit	2003-11-12 18:25:20.000000000 +0100
-+++ net-snmp-5.1/agent/mibgroup/mibII/var_route.c	2004-03-17 16:29:39.300296076 +0100
-@@ -412,6 +412,7 @@
-     static oid      saveName[MAX_OID_LEN], Current[MAX_OID_LEN];
-     u_char         *cp;
-     oid            *op;
-+    static in_addr_t addr_ret;
- #if NEED_KLGETSA
-     struct sockaddr_in *sa;
- #endif
-@@ -514,12 +515,13 @@
- 
-     switch (vp->magic) {
-     case IPROUTEDEST:
-+        *var_len = sizeof(addr_ret);
- #if NEED_KLGETSA
-         sa = klgetsa((struct sockaddr_in *) rthead[RtIndex]->rt_dst);
-         return (u_char *) & (sa->sin_addr.s_addr);
- #elif defined(hpux11)
--        long_return = rt[RtIndex].Dest;
--        return (u_char *) & long_return;
-+        addr_ret = rt[RtIndex].Dest;
-+        return (u_char *)&addr_ret;
- #else
-         return (u_char *) & ((struct sockaddr_in *) &rthead[RtIndex]->
-                              rt_dst)->sin_addr.s_addr;
-@@ -572,12 +574,13 @@
-         long_return = -1;
-         return (u_char *) & long_return;
-     case IPROUTENEXTHOP:
-+        *var_len = sizeof(addr_ret);
- #if NEED_KLGETSA
-         sa = klgetsa((struct sockaddr_in *) rthead[RtIndex]->rt_gateway);
-         return (u_char *) & (sa->sin_addr.s_addr);
- #elif defined(hpux11)
--        long_return = rt[RtIndex].NextHop;
--        return (u_char *) & long_return;
-+        addr_ret = rt[RtIndex].NextHop;
-+        return (u_char *)&addr_ret;
- #else
-         return (u_char *) & ((struct sockaddr_in *) &rthead[RtIndex]->
-                              rt_gateway)->sin_addr.s_addr;
-@@ -614,6 +617,7 @@
-         long_return = 0;
-         return (u_char *) & long_return;
-     case IPROUTEMASK:
-+        *var_len = sizeof(addr_ret);
- #if NEED_KLGETSA
-         /*
-          * XXX - Almost certainly not right
-@@ -622,10 +626,10 @@
- #if NO_DUMMY_VALUES
-         return NULL;
- #endif
--        long_return = 0;
-+        addr_ret = 0;
- #elif defined(hpux11)
--        long_return = rt[RtIndex].Mask;
--        return (u_char *) & long_return;
-+        addr_ret = rt[RtIndex].Mask;
-+        return (u_char *)&addr_ret;
- #else                           /* !NEED_KLGETSA && !hpux11 */
-         if (((struct sockaddr_in *) &rthead[RtIndex]->rt_dst)->sin_addr.
-             s_addr == 0)
-@@ -637,7 +641,7 @@
-             klookup((unsigned long) rt_ifnet.if_addrlist,
-                     (char *) &rt_ifnetaddr, sizeof(rt_ifnetaddr));
- 
--            long_return = rt_ifnetaddr.ia_subnetmask;
-+            addr_ret = rt_ifnetaddr.ia_subnetmask;
- #else                           /* linux */
-             cp = (u_char *) &
-                 (((struct sockaddr_in *) &(rthead[RtIndex]->rt_dst))->
-@@ -648,7 +652,7 @@
- #endif                          /* linux */
-         }
- #endif                          /* NEED_KLGETSA */
--        return (u_char *) & long_return;
-+        return (u_char *) & addr_ret;
-     case IPROUTEINFO:
-         *var_len = nullOidLen;
-         return (u_char *) nullOid;
---- net-snmp-5.1/agent/mibgroup/mibII/ipAddr.c.64bit	2003-06-09 23:44:42.000000000 +0200
-+++ net-snmp-5.1/agent/mibgroup/mibII/ipAddr.c	2004-03-17 16:24:14.903625952 +0100
-@@ -188,6 +188,7 @@
-     static struct in_ifaddr in_ifaddr, lowin_ifaddr;
- #else
-     static struct ifnet lowin_ifnet;
-+    static in_addr_t addr_ret;
- #endif
-     static struct ifnet ifnet;
- #endif                          /* hpux11 */
-@@ -279,7 +280,7 @@
-     memcpy((char *) name, (char *) lowest, 14 * sizeof(oid));
-     *length = 14;
-     *write_method = 0;
--    *var_len = sizeof(long_return);
-+    *var_len = sizeof(addr_ret);
-     switch (vp->magic) {
-     case IPADADDR:
- #ifdef hpux11
-@@ -293,45 +294,45 @@
-                              ia_addr)->sin_addr.s_addr;
- #endif
-     case IPADIFINDEX:
--        long_return = lowinterface;
--        return (u_char *) & long_return;
-+        addr_ret = lowinterface;
-+        return(u_char *) &addr_ret;
-     case IPADNETMASK:
- #ifdef hpux11
--        long_return = lowin_ifaddr.NetMask;
--        return (u_char *) & long_return;
-+        addr_ret = lowin_ifaddr.NetMask;
-+        return (u_char *) & addr_ret;
- #elif defined(linux)
-         return (u_char *) & ((struct sockaddr_in *) &lowin_ifnet.
-                              ia_subnetmask)->sin_addr.s_addr;
- #elif !defined(sunV3)
--        long_return = lowin_ifaddr.ia_subnetmask;
--        return (u_char *) & long_return;
-+        addr_ret = lowin_ifaddr.ia_subnetmask;
-+        return(u_char *) &addr_ret;
- #endif
-     case IPADBCASTADDR:
- #ifdef hpux11
--        long_return = lowin_ifaddr.BcastAddr;
-+        addr_ret = lowin_ifaddr.BcastAddr;
- #elif defined(linux) || defined(sunV3)
--        long_return =
-+        addr_ret =
-             ntohl(((struct sockaddr_in *) &lowin_ifnet.ifu_broadaddr)->
-                   sin_addr.s_addr) & 1;
- #elif defined(netbsd1)
--        long_return =
-+        addr_ret =
-             ((struct sockaddr_in *) &lowin_ifaddr.ia_broadaddr)->sin_addr.
-             s_addr & 1;
- #else
--        long_return =
-+        addr_ret =
-             ntohl(((struct sockaddr_in *) &lowin_ifaddr.ia_broadaddr)->
-                   sin_addr.s_addr) & 1;
- #endif
--        return (u_char *) & long_return;
-+        return (u_char *) & addr_ret;
-     case IPADREASMMAX:
- #ifdef hpux11
--        long_return = lowin_ifaddr.ReasmMaxSize;
--        return (u_char *) & long_return;
-+        addr_ret = lowin_ifaddr.ReasmMaxSize;
-+        return (u_char *) & addr_ret;
- #elif defined(NO_DUMMY_VALUES)
-         return NULL;
- #else
--        long_return = -1;
--        return (u_char *) & long_return;
-+        addr_ret = -1;
-+        return (u_char *) & addr_ret;
- #endif
-     default:
-         DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_ipAddrEntry\n",
 --- net-snmp-5.1/agent/mibgroup/mibII/at.c.64bit	2002-12-19 17:14:10.000000000 +0100
 +++ net-snmp-5.1/agent/mibgroup/mibII/at.c	2004-03-17 15:59:15.528993299 +0100
 @@ -117,9 +117,9 @@

net-snmp-5.1.1-ipAdEntIfIndex.patch:
 ipAddr.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

Index: net-snmp-5.1.1-ipAdEntIfIndex.patch
===================================================================
RCS file: /cvs/dist/rpms/net-snmp/FC-3/net-snmp-5.1.1-ipAdEntIfIndex.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- net-snmp-5.1.1-ipAdEntIfIndex.patch	9 Sep 2004 09:13:01 -0000	1.1
+++ net-snmp-5.1.1-ipAdEntIfIndex.patch	25 Apr 2005 07:56:53 -0000	1.2
@@ -1,9 +1,10 @@
 --- net-snmp-5.1.1/agent/mibgroup/mibII/ipAddr.c.ipAdEntIfIndex	2004-04-08 17:38:48.368076685 +0200
 +++ net-snmp-5.1.1/agent/mibgroup/mibII/ipAddr.c	2004-04-08 17:48:52.977283961 +0200
-@@ -200,6 +200,9 @@
+@@ -199,6 +199,10 @@
+     static struct in_ifaddr in_ifaddr, lowin_ifaddr;
  #else
      static struct ifnet lowin_ifnet;
-     static in_addr_t addr_ret;
++    static in_addr_t addr_ret;
 +#if defined(linux)
 +    static struct in_ifaddr in_ifaddr;
 +#endif


Index: net-snmp.spec
===================================================================
RCS file: /cvs/dist/rpms/net-snmp/FC-3/net-snmp.spec,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- net-snmp.spec	15 Oct 2004 09:12:32 -0000	1.24
+++ net-snmp.spec	25 Apr 2005 07:56:53 -0000	1.25
@@ -2,10 +2,11 @@
 
 Summary: A collection of SNMP protocol tools and libraries.
 Name: net-snmp
-Version: 5.1.2
-Release: 11
+Version: 5.2.1
+Release: 10.FC3
 License: BSDish
 Group: System Environment/Daemons
+URL: http://net-snmp.sourceforge.net/
 Source0: ftp://net-snmp.sourceforge.net/net-snmp-%{version}.tar.gz
 Source1: net-snmp.redhat.conf
 Source2: net-snmpd.init
@@ -13,35 +14,33 @@
 Source4: net-snmpd.logrotate
 Source5: ucd5820stat
 Patch1: ucd-snmp-4.2.4.pre3-mnttab.patch
-# Drop for 5.1.3
+# Drop for 5.3
 Patch2: net-snmp-5.0.6-syslog.patch
 Patch3: net-snmp-5.0.6-compat.patch
 Patch4: net-snmp-5.0.6-libtool.patch
-# Drop for 5.1.3
+# Drop for 5.3
 Patch5: net-snmp-5.0.8-ipv6-sock-close.patch
 Patch6: net-snmp-5.0.8-readonly.patch
-Patch7: net-snmp-5.1.2-libwrap.patch
-# Drop for 5.1.3
-Patch9: net-snmp-5.1-xs-label-iid.patch
-Patch10: net-snmp-5.1-async-getnext.patch
-# Drop for 5.1.3
-Patch11: net-snmp-5.1.1-hr_storage-mbuf-v2.patch
-Patch12: net-snmp-5.1.1-pie.patch
-Patch13: net-snmp-5.1.2-bsdcompat.patch
-Patch14: net-snmp-5.1-64bit.patch
-Patch15: net-snmp-5.1.1-ipAdEntIfIndex.patch
-Patch16: net-snmp-5.1.1-quiet-memshared.patch
-# Drop for 5.1.3
-Patch17: net-snmp-5.0.9-smux-stack-var.patch
-Patch18: net-snmp-5.1.2.rc1-agentx-little64.patch
-Patch19: net-snmp-5.1.2-lelf.patch
-# Drop for 5.1.3
-Patch20: net-snmp-5.0.9-HUP_doublefree.patch
+Patch7: net-snmp-5.1-async-getnext.patch
+Patch8: net-snmp-5.1.1-pie.patch
+Patch9: net-snmp-5.2-64bit.diff
+#kills virtual interfaces
+#Patch10: net-snmp-5.1.1-ipAdEntIfIndex.patch
+Patch11: net-snmp-5.1.2-lelf.patch
+Patch12: net-snmp-5.1.2-dir-fix.patch
+#Patch13: net-snmp-5.2-ipsystemstats.patch
+Patch14: net-snmp-5.1.2-conf_list.patch
+Patch15: net-snmp-5.2.1-trim.patch
+Patch16: net-snmp-5.1.2-ASN-unsigned64.patch
+Patch17: net-snmp-5.2.1-typeclash.diff
+Patch18: net-snmp-5.1.2-agentx_register_callbacks_entry.patch
+Patch19: net-snmp-5.2.1-file_offset.patch
+
 Prereq: /sbin/chkconfig
 Obsoletes: ucd-snmp
 BuildRoot: %{_tmppath}/%{name}-root
 BuildPrereq: openssl-devel, bzip2-devel, beecrypt-devel, elfutils-devel, libselinux-devel
-%ifarch %{ix86}
+%ifarch %{ix86} x86_64
 BuildPrereq: lm_sensors-devel
 %endif
 %if %{tcp_wrappers}
@@ -87,6 +86,8 @@
 Requires: %{name} = %{version}
 Obsoletes: ucd-snmp-devel
 BuildPrereq: elfutils-libelf-devel
+Requires: beecrypt-devel, elfutils-devel, rpm-devel
+
 
 %description devel
 The net-snmp-devel package contains the development libraries and
@@ -122,42 +123,34 @@
 %setup -q
 %patch1 -p1 -b .mnttab
 
-# Drop for 5.1.3
+# Drop for 5.3?
 %patch2 -p1 -b .syslog
 
-#%patch3 -p1 -b .compat
 %patch4 -p1 -b .libtool
 
-# Drop for 5.1.3
+# Drop for 5.3?
 %patch5 -p1 -b .ipv6-sock-close
 
 %patch6 -p1 -b .readonly
-%patch7 -p1 -b .libwrap
-
-# Drop for 5.1.3
-%patch9 -p1 -b .xs-label-iid
-
-%patch10 -p1 -b .async-getnext
-
-# Drop for 5.1.3
-%patch11 -p1 -b .hr_storage-mbuf-v2
+%patch7 -p1 -b .async-getnext
 
 %ifnarch ia64
-%patch12 -p1 -b .pie
+%patch8 -p1 -b .pie
 %endif
-%patch13 -p1 -b .bsdcompat
-%patch14 -p1 -b .64bit
-%patch15 -p1 -b .ipAdEntIfIndex
-%patch16 -p1 -b .quiet-memshared
 
-# Drop for 5.1.3
-%patch17 -p1 -b .stack
-
-%patch18 -p1 -b .agentx-little64
-%patch19 -p1 -b .lelf
-
-# Drop for 5.1.3
-%patch20 -p1 -b .hup
+%patch9  -b .64bit
+#%patch10 -p1 -b .ipAdEntIfIndex
+%patch11 -p1 -b .lelf
+%patch12 -p1 -b .dir-fix
+#%patch13 -p1 -b .ipstats
+%patch14 -p1 -b .conf_list
+
+# from CVS
+%patch15 -p1 -b .trim
+%patch16 -p1 -b .ASN-unsigned64
+%patch17 -b .typeclash
+%patch18 -p1 -b .reg_callbacks
+%patch19 -p1 -b .file_offset
 
 # Do this patch with a perl hack...
 perl -pi -e "s|'\\\$install_libdir'|'%{_libdir}'|" ltmain.sh
@@ -168,12 +161,12 @@
 %endif
 %configure \
 	--enable-static --enable-shared			\
-	--with-cflags="$RPM_OPT_FLAGS"			\
+	--with-cflags="$RPM_OPT_FLAGS -g"		\
 	--with-sys-location="Unknown"			\
 	--with-logfile="/var/log/snmpd.log"		\
 	--with-persistent-directory="/var/net-snmp"	\
 %ifarch %{ix86} x86_64
-	--with-mib-modules="host agentx smux ucd-snmp/lmSensors"	\
+	--with-mib-modules="host agentx smux ucd-snmp/lmSensors ucd-snmp/diskio"	\
 %else
 	--with-mib-modules="host agentx smux "	\
 %endif
@@ -242,8 +235,8 @@
 	| xargs -ri rm -f {}
 
 # no empty directories
-find $RPM_BUILD_ROOT/$installvendorarch \
-	-depth -type d -a -empty -exec rmdir {} \;
+#find $RPM_BUILD_ROOT/$installvendorarch \
+#	-depth -type d -a -empty -exec rmdir {} \;
 
 # build files list
 find $RPM_BUILD_ROOT/$installvendorarch -type f -print \
@@ -312,6 +305,7 @@
 %{_bindir}/encode_keychange
 %{_bindir}/snmp*
 %{_bindir}/traptoemail
+%{_bindir}/mib2c-update
 %attr(0644,root,root)	%{_mandir}/man1/snmp*.1*
 
 %files devel
@@ -328,12 +322,24 @@
 %attr(0644,root,root)   %{_mandir}/man3/*.3pm.*
 
 %files libs
-%defattr(0644,root,root,0755)
+%defattr(-,root,root)
 %{_libdir}/lib*.so.*
 %{_libdir}/*.a
 %{_libdir}/*.la
 
 %changelog
+* Mon Apr 25 2005 Radek Vokal <rvokal at redhat.com> - 5.2.1-10.FC3
+- fixed missing requires for devel package (#155221)
+- 64bit problems are hopefully gone for a while
+- net-snmp properly deals with large partitions (#153101) <jryska at redhat.com>
+- agentx double free error fix <jp.fujitsu>
+- fixed unexpected length for type ASN_UNSIGNED (#151892)
+- fixed uptime problems on ia64
+- patch from CVS - kill extra carriage return (#144917)
+- removed patch for interface indexing - doesn't show virtual interfaces
+- pointer needs to be inicialized (#146417)
+- snmpd crash with 'interfaces' directives in snmpd.conf fixed (#139010)
+
 * Fri Oct 15 2004 Radek Vokal <rvokal at redhat.com> 5.1.2-11
 - Logrotate support added (#125004)
 


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/net-snmp/FC-3/sources,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- sources	9 Sep 2004 09:13:26 -0000	1.7
+++ sources	25 Apr 2005 07:56:53 -0000	1.8
@@ -1 +1 @@
-8080555ab3f90011f25d5122042d9a8d  net-snmp-5.1.2.tar.gz
+4c38451b1f5914789da370b79dc06124  net-snmp-5.2.1.tar.gz




More information about the fedora-cvs-commits mailing list