From a20598cfce86adfe162a0d35173e7eabb5441b18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20=C5=98=C3=ADdk=C3=BD?= Date: Fri, 28 Jun 2019 08:19:08 +0200 Subject: [PATCH] Remove file with unsupported licence --- net-snmp-5.8-licensing.patch | 404 +++++++++++++++++++++++++++++++++++ 1 file changed, 404 insertions(+) create mode 100644 net-snmp-5.8-licensing.patch diff --git a/net-snmp-5.8-licensing.patch b/net-snmp-5.8-licensing.patch new file mode 100644 index 0000000..f4706a6 --- /dev/null +++ b/net-snmp-5.8-licensing.patch @@ -0,0 +1,404 @@ +diff -urNp a/agent/mibgroup/host/data_access/swinst_darwin.c b/agent/mibgroup/host/data_access/swinst_darwin.c +--- a/agent/mibgroup/host/data_access/swinst_darwin.c 2019-03-21 09:39:04.745698692 +0100 ++++ b/agent/mibgroup/host/data_access/swinst_darwin.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,400 +0,0 @@ +-/* +- * swinst.c : hrSWInstalledTable data access +- */ +-/* +- * Copyright (C) 2007 Apple, Inc. All rights reserved. +- * Use is subject to license terms specified in the COPYING file +- * distributed with the Net-SNMP package. +- */ +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include "swinst_private.h" +- +-#include +-#include +-#include +-#include +- +-#define __APPLE_API_EVOLVING 1 +-#include /* or else CoreFoundation.h barfs */ +-#undef __APPLE_API_EVOLVING +- +-#include +-#include +- +-netsnmp_feature_require(container_directory) +-netsnmp_feature_require(date_n_time) +- +-/* --------------------------------------------------------------------- +- */ +-static int _add_applications_in_dir(netsnmp_container *, const char* path); +-static int32_t _index; +-static int _check_bundled_app(CFURLRef currentURL, CFStringRef *name, +- CFStringRef *info, const char* path); +-static int _check_classic_app(CFURLRef currentURL, CFStringRef *name, +- CFStringRef *info, const char* path); +-static netsnmp_container *dirs = NULL; +- +-/* --------------------------------------------------------------------- +- */ +-void +-netsnmp_swinst_arch_init( void ) +-{ +- struct stat stat_buf; +- const char *default_dirs[] = { +- "/Applications", +- "/Applications (Mac OS 9)", +- "/System/Library/CoreServices", +- "/System/Library/Extensions", +- "/System/Library/Services" +-#ifdef TEST +- , "/Developer/Applications" +- , "/Volumes/audX/Applications (Mac OS 9)" +-#endif +- }; +- int i, count = sizeof(default_dirs)/sizeof(default_dirs[0]); +- +- /* +- * create the container, if needed +- */ +- if (NULL == dirs) { +- dirs = netsnmp_container_find("directory_container:cstring"); +- if (NULL == dirs) { +- snmp_log(LOG_ERR, "couldn't allocate container for dir list\n"); +- return; +- } +- dirs->container_name = strdup("directory search list"); +- netsnmp_binary_array_options_set(dirs, 1, CONTAINER_KEY_UNSORTED); +- } +- +- /* +- * add dirs +- */ +- for(i = 0; i < count; ++i) { +- char * tmp; +- /** xxx: get/save the last mod date? */ +- if(-1 == stat(default_dirs[i], &stat_buf)) { +- DEBUGMSGTL(("swinst:arch:darwin", "skipping dir %s\n", +- default_dirs[i])); +- continue; +- } +- DEBUGMSGTL(("swinst:arch:darwin", "adding dir %s\n", +- default_dirs[i])); +- tmp = strdup(default_dirs[i]); +- if (NULL == tmp) { +- snmp_log(LOG_ERR,"strdup failed\n"); +- break; +- } +- CONTAINER_INSERT(dirs, tmp); +- } +-} +- +-void +-netsnmp_swinst_arch_shutdown( void ) +-{ +- netsnmp_directory_container_free(dirs); +-} +- +-/* --------------------------------------------------------------------- +- */ +- +-int +-netsnmp_swinst_arch_load( netsnmp_container *container, u_int flags ) +-{ +- netsnmp_iterator *it; +- const char *dir; +- int rc; +- +- DEBUGMSGTL(("swinst:arch:darwin", "load\n")); +- +- if (NULL == dirs) { +- DEBUGMSGTL(("swinst:arch:darwin", "no dirs to scan!\n")); +- return -1; +- } +- +- _index = 0; +- +- it = CONTAINER_ITERATOR(dirs); +- for (dir = ITERATOR_FIRST(it); dir; dir = ITERATOR_NEXT(it)) { +- rc = _add_applications_in_dir(container, dir); +- } +- ITERATOR_RELEASE(it); +- DEBUGMSGTL(("swinst:arch:darwin", "loaded %d apps\n",_index)); +- +- return 0; +-} +- +-static void +-_dump_flags(u_long flags) +-{ +- static struct { +- const char*name; +- u_long bits; +- } names[] = { +- { "kLSItemInfoIsPlainFile", 0x00000001 }, +- { "kLSItemInfoIsPackage", 0x00000002 }, +- { "kLSItemInfoIsApplication", 0x00000004 }, +- { "kLSItemInfoIsContainer", 0x00000008 }, +- { "kLSItemInfoIsAliasFile", 0x00000010 }, +- { "kLSItemInfoIsSymlink", 0x00000020 }, +- { "kLSItemInfoIsInvisible", 0x00000040 }, +- { "kLSItemInfoIsNativeApp", 0x00000080 }, +- { "kLSItemInfoIsClassicApp", 0x00000100 }, +- { "kLSItemInfoAppPrefersNative", 0x00000200 }, +- { "kLSItemInfoAppPrefersClassic", 0x00000400 }, +- { "kLSItemInfoAppIsScriptable", 0x00000800 }, +- { "kLSItemInfoIsVolume", 0x00001000 }, +- { "kLSItemInfoExtensionIsHidden", 0x00100000 } +- }; +- int i, count = sizeof(names)/sizeof(names[0]); +- +- for(i = 0; i < count; ++i) { +- if (flags & names[i].bits) { +- DEBUGMSGTL(("swinst:arch:darwin:flags", "\t%s\n", +- names[i].name)); +- } +- } +-} +- +-static int +-_add_applications_in_dir(netsnmp_container *container, const char* path) +-{ +- netsnmp_container *files; +- netsnmp_iterator *it; +- const char *file; +- netsnmp_swinst_entry *entry = NULL; +- struct stat stat_buf; +- size_t date_len; +- u_char *date_buf; +- int rc = 0; +- +- CFStringRef currentPath = NULL; +- CFURLRef currentURL = NULL; +- LSItemInfoRecord itemInfoRecord; +- CFStringRef prodName = NULL; +- CFStringRef version = NULL; +- +- DEBUGMSGTL(("swinst:arch:darwin", " adding files from %s\n", path)); +- files = netsnmp_directory_container_read(NULL, path, 0); +- if (NULL == files) { +- snmp_log(LOG_ERR, "swinst: could not read directory %s\n", path); +- return -1; +- } +- +- it = CONTAINER_ITERATOR(files); +- if (NULL == it) { +- snmp_log(LOG_ERR, "could not get iterator\n"); +- netsnmp_directory_container_free(files); +- return -1; +- } +- for (file = ITERATOR_FIRST(it); +- file; +- file = ITERATOR_NEXT(it), +- CFRelease(currentPath), +- CFRelease(currentURL)) { +- +- int rc2 = 0; +- +- currentPath = +- CFStringCreateWithCStringNoCopy(kCFAllocatorDefault, file, +- kCFStringEncodingUTF8, +- kCFAllocatorNull); +- currentURL = +- CFURLCreateWithFileSystemPath(kCFAllocatorDefault, currentPath, +- kCFURLPOSIXPathStyle, true); +- LSCopyItemInfoForURL(currentURL, +- kLSRequestBasicFlagsOnly|kLSRequestAppTypeFlags, +- &itemInfoRecord); +- if((0 == itemInfoRecord.flags) || +- (kLSItemInfoIsPlainFile == itemInfoRecord.flags) || +- (itemInfoRecord.flags & kLSItemInfoIsInvisible) || +- (itemInfoRecord.flags & kLSItemInfoIsAliasFile)) { +- continue; +- } +- /** recurse on non-application containers (i.e. directory) */ +- if ((itemInfoRecord.flags & kLSItemInfoIsContainer) && +- (!(itemInfoRecord.flags & kLSItemInfoIsApplication))) { +- netsnmp_directory_container_read(files, file, 0); +- continue; +- } +- +- /** skip any other non-application files */ +- if (!(itemInfoRecord.flags & kLSItemInfoIsApplication)) { +- continue; +- } +- +- if ((itemInfoRecord.flags & kLSItemInfoIsPackage) || +- (itemInfoRecord.flags & kLSItemInfoIsContainer)) { +- rc2 = _check_bundled_app(currentURL, &prodName, &version, file); +- } +- else if ((itemInfoRecord.flags & kLSItemInfoIsClassicApp) || +- (itemInfoRecord.flags & kLSItemInfoIsPlainFile)) { +- rc2 = _check_classic_app(currentURL, &prodName, &version, file); +- } else { +- snmp_log(LOG_ERR,"swinst shouldn't get here: %s\n", file); +- _dump_flags(itemInfoRecord.flags); +- continue; +- } +- if (rc2) { /* not an app. if directory, recurse; else continue */ +- _dump_flags(itemInfoRecord.flags); +- if (1 == rc2) +- netsnmp_directory_container_read(files, file, 0); +- continue; +- } +- +- /* +- * allocate entry +- */ +- entry = netsnmp_swinst_entry_create(++_index); +- if (NULL == entry) { +- snmp_log(LOG_ERR, "error creating swinst entry\n"); +- rc = -1; +- SNMP_CFRelease(prodName); +- SNMP_CFRelease(version); +- CFRelease(currentPath); +- CFRelease(currentURL); +- break; +- } +- +- entry->swName_len = +- snprintf(entry->swName, sizeof(entry->swName), +- "%s %s", CFStringGetCStringPtr(prodName,0), +- CFStringGetCStringPtr(version,0)); +- if (entry->swName_len >= sizeof(entry->swName)) +- entry->swName_len = sizeof(entry->swName)-1; +- +- DEBUGMSGTL(("swinst:arch:darwin", "\t%s %s\n", file, entry->swName)); +- +- /** get the last mod date */ +- if(stat(file, &stat_buf) != -1) { +- date_buf = date_n_time(&stat_buf.st_mtime, &date_len); +- entry->swDate_len = date_len; +- memcpy(entry->swDate, date_buf, entry->swDate_len); +- } +- +- CONTAINER_INSERT(container, entry); +- entry = NULL; +- SNMP_CFRelease(prodName); +- SNMP_CFRelease(version); +- } +- ITERATOR_RELEASE(it); +- netsnmp_directory_container_free(files); +- +- return rc; +-} +- +-static int +-_check_bundled_app(CFURLRef currentURL, CFStringRef *prodName, +- CFStringRef *version, const char* file) +-{ +- CFBundleRef theBundle = NULL; +- CFDictionaryRef infoDict = NULL; +- +- if ((NULL == prodName) || (NULL == version)) +- return -1; +- +- theBundle = CFBundleCreate (kCFAllocatorDefault, currentURL); +- if(theBundle == NULL) +- return -1; /* not a bundle */ +- +- infoDict = CFBundleGetInfoDictionary(theBundle); +- if(0 == CFDictionaryGetCount(infoDict)) { +- SNMP_CFRelease(theBundle); +- return 1; /* directory */ +- } +- +- *prodName = (CFStringRef) +- CFDictionaryGetValue (infoDict, CFSTR("CFBundleName")); +- if (NULL == *prodName) { +- *prodName = (CFStringRef) +- CFDictionaryGetValue (infoDict, CFSTR("CFBundleDisplayName")); +- if (NULL == *prodName) { +- *prodName = (CFStringRef) CFDictionaryGetValue (infoDict, +- CFSTR("CFBundleExecutable")); +- } +- } +- if(NULL == *prodName) { +- DEBUGMSGTL(("swinst:arch:darwin", "\tmissing name: %s\n",file)); +- /*CFShow(infoDict);*/ +- SNMP_CFRelease(theBundle); +- return -1; +- } +- +- *version = (CFStringRef) +- CFDictionaryGetValue (infoDict, CFSTR("CFBundleShortVersionString")); +- if(NULL == *version) { +- *version = (CFStringRef) +- CFDictionaryGetValue (infoDict, CFSTR("CFBundleVersion")); +- if (*version == NULL) +- *version = (CFStringRef) CFDictionaryGetValue (infoDict, +- CFSTR("CFBundleGetInfoString")); +- } +- if(NULL == *version) { +- DEBUGMSGTL(("swinst:arch:darwin", "\tmissing version: %s\n",file)); +- /*CFShow(infoDict);*/ +- SNMP_CFRelease(theBundle); +- return -1; +- } +- +- if(theBundle != NULL) { +- CFRetain(*prodName); +- CFRetain(*version); +- SNMP_CFRelease(theBundle); +- } +- return 0; +-} +- +-static int +-_check_classic_app(CFURLRef currentURL, CFStringRef *prodName, +- CFStringRef *version, const char* file) +-{ +- /* +- * get info for classic or single-file apps +- */ +- FSRef theFSRef; +- int theResFile; +- +- if ((NULL == prodName) || (NULL == version)) +- return -1; +- +- *prodName = CFURLCopyLastPathComponent(currentURL); +- if (! CFURLGetFSRef(currentURL, &theFSRef)) { +- DEBUGMSGTL(("swinst:arch:darwin", "GetFSRef failed: %s\n", file)); +- SNMP_CFRelease(*prodName); +- return -1; +- } +- theResFile = FSOpenResFile(&theFSRef, fsRdPerm); +- if (ResError() != noErr) { +- DEBUGMSGTL(("swinst:arch:darwin", "FSOpenResFile failed: %s\n", file)); +- SNMP_CFRelease(*prodName); +- return -1; +- } +- VersRecHndl versHandle = (VersRecHndl)Get1IndResource('vers', 1); +- if (versHandle != NULL) { +- *version = CFStringCreateWithPascalString(kCFAllocatorDefault, +- (**versHandle).shortVersion, kCFStringEncodingMacRoman); +- if (*version == NULL) { +- StringPtr longVersionPtr = (**versHandle).shortVersion; +- longVersionPtr = (StringPtr)(((Ptr) longVersionPtr) + +- 1 + ((unsigned char) *longVersionPtr)); +- *version = CFStringCreateWithPascalString(kCFAllocatorDefault, +- longVersionPtr, kCFStringEncodingMacRoman); +- } +- ReleaseResource((Handle)versHandle); +- } +- CloseResFile(theResFile); +- if(*version == NULL) { +- DEBUGMSGTL(("swinst:arch:darwin", +- "\tmissing classic/file version: %s\n", file)); +- SNMP_CFRelease(*prodName); +- return -1; +- } +- +- return 0; +-}