snmp/snmp.patch

Fri, 07 Sep 2012 19:08:07 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 07 Sep 2012 19:08:07 +0200
changeset 667
9dacbd1d1aa2
parent 588
300d43423c2e
child 713
940f3eb5d5e6
permissions
-rw-r--r--

Correct build configuration in Solaris subdir, correct english grammar,
remove irrelevant strip notice, introduce custom CFLAG logic, facilitate
use of Solaris Studio compiler with needed build configuration
adjustments, conditionally build 64 bit position independent code,
and accommodate tun(7) in newer Solaris releases by renaming driver
and module from conflicting 'tun' to 'vtun'. These changes include
some nonstandard 'I give up' logic causing out of tree builds by
manipulating the PATH, for example.

     1 Index: agent/auto_nlist.c
     2 diff -Nau agent/auto_nlist.c.orig agent/auto_nlist.c
     3 --- agent/auto_nlist.c.orig	2011-07-02 00:35:46.000000000 +0200
     4 +++ agent/auto_nlist.c	2011-09-15 09:22:50.256627584 +0200
     5 @@ -53,6 +53,7 @@
     6      }
     7      if (*ptr == 0) {
     8          *ptr = (struct autonlist *) malloc(sizeof(struct autonlist));
     9 +	memset(*ptr, 0, sizeof(struct autonlist));
    10          it = *ptr;
    11          it->left = 0;
    12          it->right = 0;
    13 Index: agent/mibgroup/mibII/tcp.c
    14 diff -Nau agent/mibgroup/mibII/tcp.c.orig agent/mibgroup/mibII/tcp.c
    15 --- agent/mibgroup/mibII/tcp.c.orig	2011-07-02 00:35:46.000000000 +0200
    16 +++ agent/mibgroup/mibII/tcp.c	2011-09-15 09:22:50.258135285 +0200
    17 @@ -88,7 +88,7 @@
    18                   * But only define it under FreeBSD, since it
    19                   *   breaks other systems (notable AIX)
    20                   */
    21 -#ifdef freebsd4
    22 +#if defined (freebsd4) || defined (__NetBSD__)
    23  int  hz = 1000;
    24  #endif
    26 Index: agent/mibgroup/mibII/tcpTable.c
    27 diff -Nau agent/mibgroup/mibII/tcpTable.c.orig agent/mibgroup/mibII/tcpTable.c
    28 --- agent/mibgroup/mibII/tcpTable.c.orig	2011-07-02 00:35:46.000000000 +0200
    29 +++ agent/mibgroup/mibII/tcpTable.c	2011-09-15 09:22:50.260414149 +0200
    30 @@ -110,6 +110,11 @@
    31  #define	TCPTABLE_REMOTEPORT	pcb.inp_fport
    32  #define	TCPTABLE_IS_LINKED_LIST
    34 +#if defined(__FreeBSD__)
    35 +#undef  INP_NEXT_SYMBOL
    36 +#define INP_NEXT_SYMBOL inp_next
    37 +#endif
    38 +
    39  #endif                          /* linux */
    40  #endif                          /* WIN32 cygwin */
    41  #endif                          /* solaris2 */
    42 @@ -892,12 +897,17 @@
    43          nnew = SNMP_MALLOC_TYPEDEF(netsnmp_inpcb);
    44          if (!nnew)
    45              break;
    46 +#if defined(__FreeBSD__)
    47 +        memcpy(&(nnew->pcb), &(((struct xinpcb *) xig)->xi_inp),
    48 +                           sizeof(struct inpcb));
    49 +#else
    50          nnew->state = StateMap[((NS_ELEM *) xig)->xt_tp.t_state];
    51          if (nnew->state == 5 /* established */ ||
    52              nnew->state == 8 /*  closeWait  */ )
    53              tcp_estab++;
    54          memcpy(&(nnew->pcb), &(((NS_ELEM *) xig)->xt_inp),
    55                             sizeof(struct inpcb));
    56 +#endif
    58  	if (nnew->pcb.inp_vflag & INP_IPV6)
    59  	    free(nnew);
    60 Index: agent/mibgroup/ucd-snmp/diskio.c
    61 diff -Nau agent/mibgroup/ucd-snmp/diskio.c.orig agent/mibgroup/ucd-snmp/diskio.c
    62 --- agent/mibgroup/ucd-snmp/diskio.c.orig	2011-07-02 00:35:46.000000000 +0200
    63 +++ agent/mibgroup/ucd-snmp/diskio.c	2011-09-15 09:22:50.263188251 +0200
    64 @@ -800,6 +800,20 @@
    65      case DISKIO_DEVICE:
    66          *var_len = strlen(stat->dinfo->devices[indx].device_name);
    67          return (u_char *) stat->dinfo->devices[indx].device_name;
    68 +#if defined(freebsd5) && (__FreeBSD_version >= 500107)
    69 +    case DISKIO_NREAD:
    70 +        long_ret = (signed long) stat->dinfo->devices[indx].bytes[DEVSTAT_READ];
    71 +        return (u_char *) & long_ret;
    72 +    case DISKIO_NWRITTEN:
    73 +        long_ret = (signed long) stat->dinfo->devices[indx].bytes[DEVSTAT_WRITE];
    74 +        return (u_char *) & long_ret;
    75 +    case DISKIO_READS:
    76 +        long_ret = (signed long) stat->dinfo->devices[indx].operations[DEVSTAT_READ];
    77 +        return (u_char *) & long_ret;
    78 +    case DISKIO_WRITES:
    79 +        long_ret = (signed long) stat->dinfo->devices[indx].operations[DEVSTAT_WRITE];
    80 +        return (u_char *) & long_ret;
    81 +#else
    82      case DISKIO_NREAD:
    83  #if defined(freebsd5) && __FreeBSD_version >= 500107
    84          long_ret = (signed long) stat->dinfo->devices[indx].bytes[DEVSTAT_READ];
    85 @@ -857,6 +871,7 @@
    86      case DISKIO_LA15:
    87          long_ret = devloads[indx].la15;
    88          return (u_char *) & long_ret;
    89 +#endif
    91      default:
    92          ERROR_MSG("diskio.c: don't know how to handle this request.");
    93 Index: agent/mibgroup/ucd-snmp/memory_solaris2.c
    94 diff -Nau agent/mibgroup/ucd-snmp/memory_solaris2.c.orig agent/mibgroup/ucd-snmp/memory_solaris2.c
    95 --- agent/mibgroup/ucd-snmp/memory_solaris2.c.orig	2011-07-02 00:35:46.000000000 +0200
    96 +++ agent/mibgroup/ucd-snmp/memory_solaris2.c	2011-09-15 09:22:50.264370106 +0200
    97 @@ -1,3 +1,4 @@
    98 +#undef _FILE_OFFSET_BITS /* swapctl doesn't support 64bit off_t */
    99  #include <net-snmp/net-snmp-config.h>   /* local SNMP configuration details */
   100  #if HAVE_STRING_H
   101  #include <string.h>
   102 Index: agent/mibgroup/ucd-snmp/proc.c
   103 diff -Nau agent/mibgroup/ucd-snmp/proc.c.orig agent/mibgroup/ucd-snmp/proc.c
   104 --- agent/mibgroup/ucd-snmp/proc.c.orig	2011-07-02 00:35:46.000000000 +0200
   105 +++ agent/mibgroup/ucd-snmp/proc.c	2011-09-15 09:22:50.265801863 +0200
   106 @@ -1,3 +1,6 @@
   107 +#ifdef solaris2
   108 +#undef _FILE_OFFSET_BITS /* solaris procfs doesn't support 64bit off_t */
   109 +#endif
   110  #include <net-snmp/net-snmp-config.h>
   111  #include <net-snmp/net-snmp-features.h>
   113 Index: agent/mibgroup/util_funcs.c
   114 diff -Nau agent/mibgroup/util_funcs.c.orig agent/mibgroup/util_funcs.c
   115 --- agent/mibgroup/util_funcs.c.orig	2011-07-02 00:35:46.000000000 +0200
   116 +++ agent/mibgroup/util_funcs.c	2011-09-15 09:22:50.267863457 +0200
   117 @@ -477,6 +477,9 @@
   118      int             fd[2][2], i, cnt;
   119      char            ctmp[STRMAX], *cptr1, *cptr2, argvs[STRMAX], **argv,
   120          **aptr;
   121 +
   122 +    *pid = -1;  /* open_persist_pipe ignores return code but checks *pid */
   123 +
   124      /*
   125       * Setup our pipes 
   126       */
   127 Index: agent/snmpd.c
   128 diff -Nau agent/snmpd.c.orig agent/snmpd.c
   129 --- agent/snmpd.c.orig	2011-07-02 00:35:46.000000000 +0200
   130 +++ agent/snmpd.c	2011-09-15 09:22:41.994430685 +0200
   131 @@ -440,7 +440,7 @@
   132      int             log_set = 0;
   133      int             uid = 0, gid = 0;
   134      int             agent_mode = -1;
   135 -    char           *pid_file = NULL;
   136 +    char           *pid_file = "@l_prefix@/var/snmp/snmpd.pid";
   137      char            option_compatability[] = "-Le";
   138  #if HAVE_GETPID
   139      int fd;
   140 Index: apps/snmptrapd.c
   141 diff -Nau apps/snmptrapd.c.orig apps/snmptrapd.c
   142 --- apps/snmptrapd.c.orig	2011-07-02 00:35:46.000000000 +0200
   143 +++ apps/snmptrapd.c	2011-09-15 09:22:50.270293197 +0200
   144 @@ -653,6 +653,7 @@
   145       */
   146  #if HAVE_GETPID
   147      strcat(options, "p:");
   148 +    parse_config_pidFile(NULL, "@l_prefix@/var/snmp/snmptrapd.pid");
   149  #endif
   151  #ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
   152 Index: include/net-snmp/library/system.h
   153 diff -Nau include/net-snmp/library/system.h.orig include/net-snmp/library/system.h
   154 --- include/net-snmp/library/system.h.orig	2011-07-02 00:35:46.000000000 +0200
   155 +++ include/net-snmp/library/system.h	2011-09-15 09:22:50.271350973 +0200
   156 @@ -155,7 +155,8 @@
   157  #endif
   158  #ifndef HAVE_SETENV
   159      NETSNMP_IMPORT
   160 -    int             setenv(const char *, const char *, int);
   161 +    int             __netsnmp_setenv(const char *, const char *, int);
   162 +#   define          setenv(a,b,c) __netsnmp_setenv(a,b,c)
   163  #endif
   165      NETSNMP_IMPORT
   166 Index: snmplib/system.c
   167 diff -Nau snmplib/system.c.orig snmplib/system.c
   168 --- snmplib/system.c.orig	2011-07-02 00:35:46.000000000 +0200
   169 +++ snmplib/system.c	2011-09-15 09:22:50.274625796 +0200
   170 @@ -1048,7 +1048,7 @@
   172  #ifndef HAVE_SETENV
   173  int
   174 -setenv(const char *name, const char *value, int overwrite)
   175 +__netsnmp_setenv(const char *name, const char *value, int overwrite)
   176  {
   177      char           *cp;
   178      int             ret;
   179 Index: include/net-snmp/system/freebsd8.h
   180 --- include/net-snmp/system/freebsd8.h.orig	2011-09-28 06:53:47.000000000 +0200
   181 +++ include/net-snmp/system/freebsd8.h	2011-12-11 11:33:36.000000000 +0100
   182 @@ -1,3 +1,6 @@
   183 +/* freebsd8 is a superset of freebsd7 */
   184 +#include "freebsd7.h"
   185 +#define freebsd7 freebsd7
   186  /* freebsd8 is a superset of freebsd4 */
   187  #include "freebsd7.h"
   188  #define freebsd7 freebsd7
   189 Index: include/net-snmp/system/freebsd9.h
   190 --- include/net-snmp/system/freebsd9.h.orig	2011-09-28 06:53:47.000000000 +0200
   191 +++ include/net-snmp/system/freebsd9.h	2011-12-11 11:33:36.000000000 +0100
   192 @@ -1,3 +1,6 @@
   193 +/* freebsd9 is a superset of freebsd8 */
   194 +#include "freebsd8.h"
   195 +#define freebsd8 freebsd8
   196  /* freebsd9 is a superset of freebsd4 */
   197  #include "freebsd8.h"
   198  #define freebsd9 freebsd9

mercurial