Improved support for GNU/kFreeBSD

- add kFreeBSD to NBI and CPUID
- add kFreeBSD to jcpuid/jbigi build scripts
- refresh debian patches to compensate for kFreeBSD changes
- i2prouter: Detect kFreeBSD and normalize its name
- clean up osid (switching to "elif") and adding support for detecting kFreeBSD
- update postinstall.sh; I2P cannot be installed using gij so postinstall.sh
  will not be run. If/when openjdk finally comes to kFreeBSD, we'll be ready for it.
This commit is contained in:
kytv
2012-11-19 22:41:54 +00:00
parent d94c14967c
commit d0a3c7256a
13 changed files with 92 additions and 74 deletions

View File

@ -25,6 +25,10 @@ elif [ $UNIXTYPE = "linux" ] && [ -e /etc/arch-release ]; then
fi
elif [ $UNIXTYPE = "darwin" ]; then
JAVA_HOME=$(/usr/libexec/java_home)
elif [ $UNIXTYPE = "gnu/kfreebsd" ]; then
if [ -d /usr/lib/jvm/java-gcj ]; then
JAVA_HOME="/usr/lib/jvm/java-gcj"
fi
fi
export JAVA_HOME

View File

@ -35,6 +35,8 @@ SunOS*|OpenBSD*|NetBSD*|*FreeBSD*|Linux*)
UNIXTYPE=$(uname -s | tr "[A-Z]" "[a-z]")
if [ $UNIXTYPE = "sunos" ]; then
UNIXTYPE="solaris"
elif [ $UNIXTYPE = "gnu/kfreebsd" ]; then
UNIXTYPE="linux"
fi
COMPILEFLAGS="-fPIC -Wall"
INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}"

View File

@ -1,5 +1,13 @@
#!/bin/sh
# If JAVA_HOME isn't set we'll try to figure it out
[ -z $JAVA_HOME ] && . ../find-java-home
if [ ! -f "$JAVA_HOME/include/jni.h" ]; then
echo "Cannot find jni.h! Looked in '$JAVA_HOME/include/jni.h'"
echo "Please set JAVA_HOME to a java home that has the JNI"
exit 1
fi
#FIXME What platforms for MacOS?
MISC_DARWIN_PLATFORMS="powerpc powerpc64 powerpc64le powerpcle"
@ -49,6 +57,8 @@ X86_PLATFORMS="pentium pentiummmx pentium2 pentium3 pentiumm k6 k62 k63 athlon g
if [ $(uname -s |tr "[A-Z]" "[a-z]") = "linux" ]; then
ECHO="/bin/echo"
elif [ $(uname -s |tr "[A-Z]" "[a-z]") = "gnu/kfreebsd" ]; then
ECHO="/bin/echo"
else
ECHO="echo"
fi
@ -81,19 +91,23 @@ MINGW*)
PLATFORM_LIST="${MINGW_PLATFORMS}"
NAME="jbigi"
TYPE="dll"
TARGET="-windows-"
TARGET="windows"
$ECHO "Building windows .dlls for all architectures";;
Darwin*)
PLATFORM_LIST="${DARWIN_PLATFORMS}"
NAME="libjbigi"
TYPE="jnilib"
TARGET="-osx-"
TARGET="osx"
$ECHO "Building ${TARGET} .jnilibs for all architectures";;
Linux*)
Linux*|*kFreeBSD)
NAME="libjbigi"
TYPE="so"
PLATFORM_LIST=""
TARGET="-linux-"
if [ $(uname -s | tr "[A-Z]" "[a-z]") = "gnu/kfreebsd" ]; then
TARGET="kfreebsd"
else
TARGET="linux"
fi
arch=$(uname -m | cut -f1 -d" ")
case ${arch} in
i[3-6]86)
@ -102,13 +116,13 @@ Linux*)
case ${arch} in
x86_64 | amd64)
PLATFORM_LIST="${X86_64_PLATFORMS}"
TARGET="-linux-X86_64-";;
TARGET="$TARGET-X86_64";;
ia64)
PLATFORM_LIST="${X86_64_PLATFORMS}"
TARGET="-linux-ia64-";;
TARGET="$TARGET-ia64";;
x86)
PLATFORM_LIST="${X86_PLATFORMS}"
TARGET="-linux-x86-";;
TARGET="$TARGET-x86";;
*)
PLATFORM_LIST="${LINUX_PLATFORMS}";;
esac
@ -126,13 +140,13 @@ NetBSD*|FreeBSD*|OpenBSD*)
case ${arch} in
x86_64|amd64)
PLATFORM_LIST="${X86_64_PLATFORMS}"
TARGET="-${BSDTYPE}-X86_64-";;
TARGET="${BSDTYPE}-X86_64";;
ia64)
PLATFORM_LIST="${X86_64_PLATFORMS}"
TARGET="-${BSDTYPE}-ia64-";;
TARGET="${BSDTYPE}-ia64";;
x86)
PLATFORM_LIST="${X86_PLATFORMS}"
TARGET="-${BSDTYPE}-x86-";;
TARGET="${BSDTYPE}-x86";;
*)
case ${BSDTYPE} in
netbsd)
@ -153,6 +167,10 @@ NetBSD*|FreeBSD*|OpenBSD*)
esac
make_static () {
#
# TODO
# Fix formatting of output filename. Final versions will need to look
# like libjbigi-linux-athlon64.so or libjbigi-linux-athlon64_64.so
$ECHO "Attempting .${4} creation for ${3}${5}${2}"
../../build_jbigi.sh static || return 1
cp ${3}.${4} ../../lib/net/i2p/util/${3}${5}${2}.${4}
@ -217,7 +235,7 @@ do
rm -Rf *
fi
build_file "$VER" "$x" "$NAME" "$TYPE" "$TARGET"
build_file "$VER" "$x" "$NAME" "$TYPE" "-$TARGET-"
)
done

View File

@ -35,11 +35,13 @@ case `uname -s` in
LINKFLAGS="-dynamiclib -framework JavaVM"
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-darwin.jnilib";;
Linux*|OpenBSD*|NetBSD*|*FreeBSD*|SunOS*)
KFREEBSD=0
UNIXTYPE="`uname -s | tr [A-Z] [a-z]`"
if [ ${UNIXTYPE} = "sunos" ]; then
UNIXTYPE="solaris"
elif [ ${UNIXTYPE} = "kfreebsd" ]; then
elif [ ${UNIXTYPE} = "gnu/kfreebsd" ]; then
UNIXTYPE="linux"
KFREEBSD=1
fi
# If JAVA_HOME isn't set, try to figure it out on our own
[ -z $JAVA_HOME ] && . ../find-java-home
@ -62,11 +64,15 @@ case `uname -s` in
ARCH="x86";;
*)
echo "Unsupported build environment. jcpuid is only used on x86 systems."
exit 1;;
exit 0;;
esac
LINKFLAGS="-shared -Wl,-soname,libjcpuid-${ARCH}-${UNIXTYPE}.so"
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-${ARCH}-${UNIXTYPE}.so"
if [ $KFREEBSD -eq 1 ]; then
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-${ARCH}-kfreebsd.so"
else
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-${ARCH}-${UNIXTYPE}.so"
fi
COMPILEFLAGS="-fPIC -Wall"
INCLUDES="-I. -Iinclude -I${JAVA_HOME}/include -I${JAVA_HOME}/include/${UNIXTYPE}";;
esac

View File

@ -55,7 +55,8 @@ public class CPUID {
private static final String libPrefix = isWindows ? "" : "lib";
private static final String libSuffix = isWindows ? ".dll" : ".so";
private static final boolean isLinux = System.getProperty("os.name").toLowerCase(Locale.US).contains("linux");
private static final boolean isFreebsd = System.getProperty("os.name").toLowerCase(Locale.US).contains("freebsd");
private static final boolean isKFreebsd = System.getProperty("os.name").toLowerCase(Locale.US).contains("kfreebsd");
private static final boolean isFreebsd = (!isKFreebsd) && System.getProperty("os.name").toLowerCase(Locale.US).contains("freebsd");
private static final boolean isNetbsd = System.getProperty("os.name").toLowerCase(Locale.US).contains("netbsd");
private static final boolean isOpenbsd = System.getProperty("os.name").toLowerCase(Locale.US).contains("openbsd");
private static final boolean isSunos = System.getProperty("os.name").toLowerCase(Locale.US).contains("sunos");
@ -447,6 +448,8 @@ public class CPUID {
return "jcpuid-x86-osx"; // The convention on Intel Macs
}
}
if(isKFreebsd)
return "jcpuid-x86-kfreebsd"; // The convention on kfreebsd...
if(isFreebsd)
return "jcpuid-x86-freebsd"; // The convention on freebsd...
if(isNetbsd)
@ -464,6 +467,8 @@ public class CPUID {
private static final String get64LibraryMiddlePart() {
if(isWindows)
return "jcpuid-x86_64-windows";
if(isKFreebsd)
return "jcpuid-x86_64-kfreebsd";
if(isFreebsd)
return "jcpuid-x86_64-freebsd";
if(isNetbsd)

View File

@ -162,7 +162,8 @@ public class NativeBigInteger extends BigInteger {
private static final boolean _isOS2 = System.getProperty("os.name").startsWith("OS/2");
private static final boolean _isMac = SystemVersion.isMac();
private static final boolean _isLinux = System.getProperty("os.name").toLowerCase(Locale.US).contains("linux");
private static final boolean _isFreebsd = System.getProperty("os.name").toLowerCase(Locale.US).contains("freebsd");
private static final boolean _isKFreebsd = System.getProperty("os.name").toLowerCase(Locale.US).contains("kfreebsd");
private static final boolean _isFreebsd = (!_isKFreebsd) && System.getProperty("os.name").toLowerCase(Locale.US).contains("freebsd");
private static final boolean _isNetbsd = System.getProperty("os.name").toLowerCase(Locale.US).contains("netbsd");
private static final boolean _isOpenbsd = System.getProperty("os.name").toLowerCase(Locale.US).contains("openbsd");
private static final boolean _isSunos = System.getProperty("os.name").toLowerCase(Locale.US).contains("sunos");
@ -773,6 +774,8 @@ public class NativeBigInteger extends BigInteger {
private static final String getMiddleName1() {
if(_isWin)
return "jbigi-windows-";
if(_isKFreebsd)
return "jbigi-kfreebsd-";
if(_isFreebsd)
return "jbigi-freebsd-";
if(_isNetbsd)

View File

@ -107,7 +107,7 @@ Debian wrapper.config to try to prevent confusion.
if [ -n "$FIXED_COMMAND" ]
then
COMMAND="$FIXED_COMMAND"
@@ -905,9 +856,6 @@
@@ -908,9 +859,6 @@
# The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP $ADDITIONAL_PARA"
eval $COMMAND_LINE
@ -117,7 +117,7 @@ Debian wrapper.config to try to prevent confusion.
else
eval echo `gettext '$APP_LONG_NAME is already running.'`
exit 1
@@ -1031,9 +979,6 @@
@@ -1034,9 +982,6 @@
# The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP $ADDITIONAL_PARA"
eval $COMMAND_LINE
@ -127,7 +127,7 @@ Debian wrapper.config to try to prevent confusion.
else
eval echo `gettext '$APP_LONG_NAME is already running.'`
exit 1
@@ -1874,18 +1819,9 @@
@@ -1877,18 +1822,9 @@
status
;;

View File

@ -12,8 +12,8 @@ a soname to shut lintian up.
--- a/core/c/jbigi/build_jbigi.sh
+++ b/core/c/jbigi/build_jbigi.sh
@@ -37,7 +37,7 @@
UNIXTYPE="solaris"
@@ -39,7 +39,7 @@
UNIXTYPE="linux"
fi
COMPILEFLAGS="-fPIC -Wall"
- INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/${UNIXTYPE}"
@ -21,7 +21,7 @@ a soname to shut lintian up.
LINKFLAGS="-shared -Wl,-soname,libjbigi.so"
LIBFILE="libjbigi.so";;
*)
@@ -56,7 +56,7 @@
@@ -58,7 +58,7 @@
echo "Compiling C code..."
rm -f jbigi.o $LIBFILE

View File

@ -8,12 +8,16 @@ Subject: rename jcpuid
--- a/core/c/jcpuid/build.sh
+++ b/core/c/jcpuid/build.sh
@@ -65,8 +65,8 @@
exit 1;;
@@ -67,12 +67,8 @@
exit 0;;
esac
- LINKFLAGS="-shared -Wl,-soname,libjcpuid-${ARCH}-${UNIXTYPE}.so"
- LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-${ARCH}-${UNIXTYPE}.so"
- if [ $KFREEBSD -eq 1 ]; then
- LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-${ARCH}-kfreebsd.so"
- else
- LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-${ARCH}-${UNIXTYPE}.so"
- fi
+ LINKFLAGS="-shared -Wl,-soname,libjcpuid.so"
+ LIBFILE="../jbigi/libjcpuid.so"
COMPILEFLAGS="-fPIC -Wall"

View File

@ -1,3 +1,7 @@
2012-11-19 kytv
* Add support for kFreeBSD to NBI and CPUID
* Improve kFreeBSD support in jcupid/jbigi scripts
2012-11-19 zzz
* BuildHandler: Disable CoDel, wasn't helping
* NetDB: Add negative lookup cache

View File

@ -357,6 +357,9 @@ case "$DIST_OS" in
'unix_sv')
DIST_OS="unixware"
;;
'gnu/kfreebsd')
DIST_OS="kfreebsd"
;;
'os/390')
DIST_OS="zos"
;;

View File

@ -34,6 +34,7 @@ fi
DARWIN=`echo "$HOST_OS" | grep Darwin`
MAC=`echo "$HOST_OS" | grep Mac`
KFREEBSD=`echo "$HOST_OS" | grep kFreeBSD`
FREEBSD=`echo "$HOST_OS" | grep FreeBSD`
LINUX=`echo "$HOST_OS" | grep Linux`
SOLARIS=`echo "$HOST_OS" | grep Solaris`
@ -43,25 +44,15 @@ OPENBSD=`echo "$HOST_OS" |grep OpenBSD`
if [ ! "X$DARWIN" = "X" -o ! "X$MAC" = "X" ]; then
echo osx
exit 0
fi
if [ ! "X$FREEBSD" = "X" ]; then
elif [ ! "X$KFREEBSD" = "X" ]; then
echo kfreebsd
elif [ ! "X$FREEBSD" = "X" ]; then
echo freebsd
exit 0
fi
if [ ! "X$NETBSD" = "X" ]; then
elif [ ! "X$NETBSD" = "X" ]; then
echo netbsd
exit 0
fi
if [ ! "X$OPENBSD" = "X" ]; then
elif [ ! "X$OPENBSD" = "X" ]; then
echo openbsd
exit 0
fi
if [ ! "X$LINUX" = "X" ]; then
elif [ ! "X$LINUX" = "X" ]; then
LINUX_DISTRO=`cat /proc/version`
DEBIAN=`echo $LINUX_DISTRO | grep Debian`
@ -73,43 +64,21 @@ if [ ! "X$LINUX" = "X" ]; then
if [ ! "X$DEBIAN" = "X" ]; then
echo debian
exit 0
fi
if [ ! "X$FEDORA" = "X" ]; then
elif [ ! "X$FEDORA" = "X" ]; then
echo fedora
exit 0
fi
if [ ! "X$GENTOO" = "X" ]; then
elif [ ! "X$GENTOO" = "X" ]; then
echo gentoo
exit 0
fi
if [ ! "X$MANDRAKE" = "X" ]; then
elif [ ! "X$MANDRAKE" = "X" ]; then
echo mandrake
exit 0
fi
if [ ! "X$REDHAT" = "X" ]; then
elif [ ! "X$REDHAT" = "X" ]; then
echo redhat
exit 0
fi
if [ ! "X$SUSE" = "X" ]; then
elif [ ! "X$SUSE" = "X" ]; then
echo suse
exit 0
else
echo linux
fi
echo linux
exit 0
fi
if [ ! "X$SOLARIS" = "X" -o ! "X$SUNOS" = "X" ]; then
elif [ ! "X$SOLARIS" = "X" -o ! "X$SUNOS" = "X" ]; then
echo solaris
exit 0
else
echo unknown
fi
echo unknown
exit 0

View File

@ -81,7 +81,7 @@ case $HOST_OS in
wrapperpath="./lib/wrapper/solaris"
cp ${wrapperpath}/libwrapper.so ./lib/
;;
netbsd|openbsd )
netbsd|openbsd|kfreebsd)
# FIXME
# This isn't displayed when installing, but if we fall back to the "*)"
# choice, no cleanup happens and users are advised to copy the wrapper