1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-06 12:41:29 +00:00

Added a script to check for newer versions of included libs

Just run "sh checklibs.sh". Currently checks liblua, libpcre, libpcap,
and prints the latest version of liblinear (no version info is in the
copy we have). Requires perl, curl, and a C compiler (cc).
This commit is contained in:
dmiller
2013-12-24 16:57:36 +00:00
parent ee701dc116
commit 08a12f3921

74
checklibs.sh Normal file
View File

@@ -0,0 +1,74 @@
#!/bin/sh
NDIR=${NDIR:-$PWD}
newest() {
perl -ne'$n=pack"C*",split/\./;$m=($m,$n)[$n gt$m];END{print join".",unpack("C*",$m)}'
}
trim_version() {
echo $1 | sed 's/\(^\|\.\)0*/\1/g'
}
check_libpcre() {
PCRE_SOURCE="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/"
PCRE_MAJOR=""
PCRE_MINOR=""
eval $(grep '^PCRE_MAJOR=' $NDIR/libpcre/configure)
eval $(grep '^PCRE_MINOR=' $NDIR/libpcre/configure)
PCRE_VERSION="$PCRE_MAJOR.$PCRE_MINOR"
PCRE_LATEST=$(curl -ls $PCRE_SOURCE | perl -lne 'if(/pcre-(\d+.\d+).tar.gz$/){print $1}' | newest)
if [ "$PCRE_VERSION" != "$PCRE_LATEST" ]; then
echo "Newer version of libpcre available"
echo " Current:" $PCRE_VERSION
echo " Latest: " $PCRE_LATEST
echo " Source: $PCRE_SOURCE"
fi
}
check_libpcap() {
PCAP_SOURCE="http://www.tcpdump.org/release/"
PCAP_VERSION=$(cat $NDIR/libpcap/VERSION)
PCAP_LATEST=$(curl -s $PCAP_SOURCE | perl -lne 'if(/libpcap-([\d.]+).tar.gz/){print $1}' | newest)
if [ "$PCAP_VERSION" != "$PCAP_LATEST" ]; then
echo "Newer version of libpcap available"
echo " Current:" $PCAP_VERSION
echo " Latest: " $PCAP_LATEST
echo " Source: $PCAP_SOURCE"
fi
}
check_liblua() {
LUA_SOURCE="http://www.lua.org/ftp/"
cat >check_liblua.c <<EOC
#include "lua.h"
#include<stdio.h>
int main(int argc,char *argv[]){
printf("%s\\n", LUA_RELEASE);
return 0;
}
EOC
cc -I"$NDIR/liblua" -o check_liblua check_liblua.c
LUA_VERSION=$(./check_liblua)
LUA_VERSION=${LUA_VERSION#Lua }
rm check_liblua check_liblua.c
LUA_LATEST=$(curl -s $LUA_SOURCE | perl -lne 'if(/lua-([\d.]+).tar.gz/){print $1}' | newest)
if [ "$LUA_VERSION" != "$LUA_LATEST" ]; then
echo "Newer version of liblua available"
echo " Current:" $LUA_VERSION
echo " Latest: " $LUA_LATEST
echo " Source: $LUA_SOURCE"
fi
}
check_liblinear() {
LINEAR_SOURCE="http://www.csie.ntu.edu.tw/~cjlin/liblinear/"
echo "Can't check liblinear, no version information is available"
LINEAR_LATEST=$(curl -s $LINEAR_SOURCE | perl -lne 'if(/The current release \(([^)]+)\) of <b>LIBLINEAR/){print $1;exit 0}')
echo " Latest:" $LINEAR_LATEST
}
check_libpcre
check_libpcap
check_liblua
check_liblinear