Update net-snmp to use modern (rpm >= 4.6) API
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
This commit is contained in:
		
							parent
							
								
									0cb00a528c
								
							
						
					
					
						commit
						e3bd176532
					
				
							
								
								
									
										90
									
								
								net-snmp-5.7.3-modern-rpm-api.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								net-snmp-5.7.3-modern-rpm-api.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,90 @@ | |||||||
|  | diff -uNr net-snmp-5.7.3.orig/agent/mibgroup/host/data_access/swinst_rpm.c net-snmp-5.7.3/agent/mibgroup/host/data_access/swinst_rpm.c
 | ||||||
|  | --- net-snmp-5.7.3.orig/agent/mibgroup/host/data_access/swinst_rpm.c	2014-12-08 21:23:22.000000000 +0100
 | ||||||
|  | +++ net-snmp-5.7.3/agent/mibgroup/host/data_access/swinst_rpm.c	2017-08-11 00:16:35.232470439 +0200
 | ||||||
|  | @@ -96,8 +96,7 @@
 | ||||||
|  |   | ||||||
|  |      rpmdbMatchIterator    mi; | ||||||
|  |      Header                h; | ||||||
|  | -    char                 *n, *v, *r, *g;
 | ||||||
|  | -    int32_t              *t;
 | ||||||
|  | +    const char           *n, *v, *r, *g;
 | ||||||
|  |      time_t                install_time; | ||||||
|  |      size_t                date_len; | ||||||
|  |      int                   i = 1; | ||||||
|  | @@ -119,11 +118,11 @@
 | ||||||
|  |          CONTAINER_INSERT(container, entry); | ||||||
|  |   | ||||||
|  |          h = headerLink( h ); | ||||||
|  | -        headerGetEntry( h, RPMTAG_NAME,        NULL, (void**)&n, NULL);
 | ||||||
|  | -        headerGetEntry( h, RPMTAG_VERSION,     NULL, (void**)&v, NULL);
 | ||||||
|  | -        headerGetEntry( h, RPMTAG_RELEASE,     NULL, (void**)&r, NULL);
 | ||||||
|  | -        headerGetEntry( h, RPMTAG_GROUP,       NULL, (void**)&g, NULL);
 | ||||||
|  | -        headerGetEntry( h, RPMTAG_INSTALLTIME, NULL, (void**)&t, NULL);
 | ||||||
|  | +        n = headerGetString( h, RPMTAG_NAME);
 | ||||||
|  | +        v = headerGetString( h, RPMTAG_VERSION);
 | ||||||
|  | +        r = headerGetString( h, RPMTAG_RELEASE);
 | ||||||
|  | +        g = headerGetString( h, RPMTAG_GROUP);
 | ||||||
|  | +        install_time = headerGetNumber( h, RPMTAG_INSTALLTIME);
 | ||||||
|  |   | ||||||
|  |          entry->swName_len = snprintf( entry->swName, sizeof(entry->swName), | ||||||
|  |                                        "%s-%s-%s", n, v, r); | ||||||
|  | @@ -133,7 +132,6 @@
 | ||||||
|  |                          ? 2      /* operatingSystem */ | ||||||
|  |                          : 4;     /*  application    */ | ||||||
|  |   | ||||||
|  | -        install_time = *t;
 | ||||||
|  |          dt = date_n_time( &install_time, &date_len ); | ||||||
|  |          if (date_len != 8 && date_len != 11) { | ||||||
|  |              snmp_log(LOG_ERR, "Bogus length from date_n_time for %s", entry->swName); | ||||||
|  | diff -uNr net-snmp-5.7.3.orig/agent/mibgroup/host/hr_swinst.c net-snmp-5.7.3/agent/mibgroup/host/hr_swinst.c
 | ||||||
|  | --- net-snmp-5.7.3.orig/agent/mibgroup/host/hr_swinst.c	2014-12-08 21:23:22.000000000 +0100
 | ||||||
|  | +++ net-snmp-5.7.3/agent/mibgroup/host/hr_swinst.c	2017-08-11 00:17:07.488544492 +0200
 | ||||||
|  | @@ -484,9 +484,9 @@
 | ||||||
|  |              } | ||||||
|  |  #else | ||||||
|  |  # ifdef HAVE_LIBRPM | ||||||
|  | -            char *rpm_groups;
 | ||||||
|  | -            if ( headerGetEntry(swi->swi_h, RPMTAG_GROUP, NULL, (void **) &rpm_groups, NULL) ) {
 | ||||||
|  | -                if ( strstr(rpm_groups, "System Environment") != NULL )
 | ||||||
|  | +            const char *rpm_group = headerGetString(swi->swi_h, RPMTAG_GROUP);
 | ||||||
|  | +            if ( NULL != rpm_group ) {
 | ||||||
|  | +                if ( strstr(rpm_group, "System Environment") != NULL )
 | ||||||
|  |                      long_return = 2;	/* operatingSystem */ | ||||||
|  |                  else | ||||||
|  |                      long_return = 4;	/* applcation */ | ||||||
|  | @@ -503,9 +503,8 @@
 | ||||||
|  |      case HRSWINST_DATE: | ||||||
|  |          { | ||||||
|  |  #ifdef HAVE_LIBRPM | ||||||
|  | -            int32_t         *rpm_data;
 | ||||||
|  | -            if ( headerGetEntry(swi->swi_h, RPMTAG_INSTALLTIME, NULL, (void **) &rpm_data, NULL) ) {
 | ||||||
|  | -                time_t          installTime = *rpm_data;
 | ||||||
|  | +            time_t installTime = headerGetNumber(swi->swi_h, RPMTAG_INSTALLTIME);
 | ||||||
|  | +            if ( 0 != installTime) {
 | ||||||
|  |                  ret = date_n_time(&installTime, var_len); | ||||||
|  |              } else { | ||||||
|  |                  ret = date_n_time(NULL, var_len); | ||||||
|  | @@ -665,7 +664,7 @@
 | ||||||
|  |      if (1 <= ix && ix <= swi->swi_nrec && ix != swi->swi_prevx) { | ||||||
|  |          int             offset; | ||||||
|  |          Header          h; | ||||||
|  | -        char           *n, *v, *r;
 | ||||||
|  | +        const char     *n, *v, *r;
 | ||||||
|  |   | ||||||
|  |          offset = swi->swi_recs[ix - 1]; | ||||||
|  |   | ||||||
|  | @@ -690,11 +689,9 @@
 | ||||||
|  |          swi->swi_h = h; | ||||||
|  |          swi->swi_prevx = ix; | ||||||
|  |   | ||||||
|  | -        headerGetEntry(swi->swi_h, RPMTAG_NAME, NULL, (void **) &n, NULL);
 | ||||||
|  | -        headerGetEntry(swi->swi_h, RPMTAG_VERSION, NULL, (void **) &v,
 | ||||||
|  | -                       NULL);
 | ||||||
|  | -        headerGetEntry(swi->swi_h, RPMTAG_RELEASE, NULL, (void **) &r,
 | ||||||
|  | -                       NULL);
 | ||||||
|  | +        n = headerGetString(swi->swi_h, RPMTAG_NAME);
 | ||||||
|  | +        v = headerGetString(swi->swi_h, RPMTAG_VERSION);
 | ||||||
|  | +        r = headerGetString(swi->swi_h, RPMTAG_RELEASE);
 | ||||||
|  |          snprintf(swi->swi_name, sizeof(swi->swi_name), "%s-%s-%s", n, v, r); | ||||||
|  |          swi->swi_name[ sizeof(swi->swi_name)-1 ] = 0; | ||||||
|  |      } | ||||||
| @ -67,6 +67,9 @@ Patch18: 0001-Link-libnetsnmptrapd-against-MYSQL_LIBS.patch | |||||||
| # !!!WARNING!!!   DO NOT USE IT FOR OLDER FEDORA RELEASES (>f26) | # !!!WARNING!!!   DO NOT USE IT FOR OLDER FEDORA RELEASES (>f26) | ||||||
| Patch100: net-snmp-5.7.3-openssl.patch | Patch100: net-snmp-5.7.3-openssl.patch | ||||||
| 
 | 
 | ||||||
|  | # Modern RPM API means at least EL6 | ||||||
|  | Patch101: net-snmp-5.7.3-modern-rpm-api.patch | ||||||
|  | 
 | ||||||
| Requires(post): chkconfig | Requires(post): chkconfig | ||||||
| Requires(preun): chkconfig | Requires(preun): chkconfig | ||||||
| # for /sbin/service | # for /sbin/service | ||||||
| @ -242,6 +245,7 @@ cp %{SOURCE12} . | |||||||
| %patch17 -p1 -b .mariadb102 | %patch17 -p1 -b .mariadb102 | ||||||
| %patch18 -p1 -b .perlfix | %patch18 -p1 -b .perlfix | ||||||
| %patch100 -p1 -b .openssl | %patch100 -p1 -b .openssl | ||||||
|  | %patch101 -p1 -b .modern-rpm-api | ||||||
| 
 | 
 | ||||||
| %ifarch sparc64 s390 s390x | %ifarch sparc64 s390 s390x | ||||||
| # disable failing test - see https://bugzilla.redhat.com/show_bug.cgi?id=680697 | # disable failing test - see https://bugzilla.redhat.com/show_bug.cgi?id=680697 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user