/snmpb-code

SNMPb gui application cloned from sourceforge

Primary LanguageCGNU General Public License v2.0GPL-2.0

To compile:

# make (linux, macosx, unix)
# gmake (*BSD)
> make (Windows/MSYS2)

To install in places other than /usr, add INSTALL_PREFIX=<prefix> to the make command.

Tested & compiles on MSYS2/Windows, Linux, MacOSX (Leopard) and NetBSD

--------------------------------

Required installed packages for compilation:
- bison & flex
- autoconf and automake
- GNU make
- QT5 development package
- GNU install
- gcc and g++

Instructions for windows build
-------------------------------
SnmpB builds on windows using MSYS2 
1- Download and install MSYS2 from https://sourceforge.net/projects/msys2
2- Start the 'MINGW64' flavor of MSYS2 by executing the script 'mingw64_shell.bat' from the root of the MSYS2 installation folder
3- Install packages for QT build on MSYS2 (taken from https://wiki.qt.io/MSYS2), specifically:
   pacman -Sy
   pacman --needed -S pacman pacman-mirrors msys2-runtime
   (restart shell)
   pacman -Su
   pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-qt5-static mingw-w64-x86_64-qt-creator  
4- Download SnmpB source and compile with "make"
5- Download and install the NSIS installer from http://nsis.sourceforge.net/ (3.0 works)
6- Using windows explorer, go in snmpb/installer/win32 and right-click on the .nsi, 
   then "Compile NSIS Script"
7- Voila, you have the full SnmpB windows installer .exe

External packages
------------------

Snmp++ is taken from http://www.agentpp.com
Version: 3.3.9

Modified file(s):
config_snmp_pp.h libsnmp.h config.h (new) "Hard-coded values instead of using package's autoconf"
notifyqueue.cpp "Added missing ipv6 include required for compilation on WIN32"
address.cpp "Replaced custom get_printable for IPv6 addresses by inet_ntop()"
notifyqueue.h uxsnmp.h notifyqueue.cpp uxsnmp.cpp 
"Modified snmp++ to allow binding trap port on both ipv4 and ipv6 for all interfaces"
uxsnmp.h notifyqueue.cpp "Added set/get_notify_callback_fd() to access fd when replying to INFORMS"
IPv6Utility.cpp IPv6Utility.h "Re-enabled local inet_pton unavailable on MSYS2/MINGW"
uxsnmp.h "Redefined INVALID_SOCKET to get rid of compiler warnings"

Libtomcrypt is taken from http://libtom.org
Version: 1.17

Modified file(s):
makefile
src/headers/tomcrypt_pk.h "Added defined(BSD) around wchar_t definition to fix broken build on *BSD"
src/headers/tomcrypt_custom.h "Defined LTC_NO_ROLC for MacOSX using LLVM"
src/headers/tomcrypt_macros.h "Disabled ROL64/ROR64 assembly routines on Windows 64 bits"

Libsmi is taken from http://www.ibr.cs.tu-bs.de/projects/libsmi
Version: 0.5.0

Modified file(s):
win/Makefile.mingw
win/config.h
lib/Makefile.am
Makefile.am     "Removed compilation of all subdirs except lib"
lib/Makefile.am "Fixed file generation rules: broke parallel build"
lib/util.c      "smiIsPath(): removed condition for "." in filename"
lib/snprintf.c  "Upgraded snprintf.c from source to support 64 bits printing on Windows"
lib/smi.c       "Fixed a bug on paths with spaces in smiReadConfig()"
lib/smi.c       "Fixed stack overwrite in smiRenderValue due to uint64 format"
lib/smi.c       "Fixed display for non-printable octet-strings -tracker 3096221"
lib/smi.c       "Allows OCTET STRING to be printable with \v, \t , \r, \n, \f"
lib/parser-smi.y "Fixed crash when defval mismatches with object type"
lib/parser-smi.y "Fixed crash when row name is NULL (JETDIRECT3-MIB)"
lib/parser-smi.y "Fixed crash on compliance statement group"

Deleted mibs/ietf/IANA-ITU-ALARM-TC-MIB: redundant with one in iana folder 
(prevented proper copy in win32 installer)
Ran 'autoreconf -i' to generate Makefiles for 1.15 libtools

QWT is taken from http://qwt.sourceforge.net
Version: 6.1.2

Modified file(s):
qwtconfig.pri
qwtbuild.pri "Removed silent flag, prevented build on win32"
qwt.pro

+ do not import the doc,examples,playground & admin sub-directories for space's sake

--------------------------------

Martin Jolicoeur, August 2017