diff options
author | bsam <bsam@FreeBSD.org> | 2016-10-26 03:37:33 +0800 |
---|---|---|
committer | bsam <bsam@FreeBSD.org> | 2016-10-26 03:37:33 +0800 |
commit | fedf83d45d2bcf6bd73084e2a3a4be4616594c46 (patch) | |
tree | 10644197da465922eb5b6b04effcda349a087c00 | |
parent | 367db6f84bde454dd5fc166ea126e34e9560c6f5 (diff) | |
download | freebsd-ports-gnome-fedf83d45d2bcf6bd73084e2a3a4be4616594c46.tar.gz freebsd-ports-gnome-fedf83d45d2bcf6bd73084e2a3a4be4616594c46.tar.zst freebsd-ports-gnome-fedf83d45d2bcf6bd73084e2a3a4be4616594c46.zip |
Library for working with serial ports in Java.
WWW: https://github.com/scream3r/java-simple-serial-connector
PR: 213758
Submitted by: bsdports@kyle-evans.net
10 files changed, 207 insertions, 0 deletions
diff --git a/comms/Makefile b/comms/Makefile index 1080e2dcd628..4fd3564f060c 100644 --- a/comms/Makefile +++ b/comms/Makefile @@ -70,6 +70,7 @@ SUBDIR += ibp SUBDIR += java-commapi SUBDIR += java-commapi-freebsd + SUBDIR += java-simple-serial-connector SUBDIR += jerm SUBDIR += jsdr SUBDIR += kb diff --git a/comms/java-simple-serial-connector/Makefile b/comms/java-simple-serial-connector/Makefile new file mode 100644 index 000000000000..cefd777580d6 --- /dev/null +++ b/comms/java-simple-serial-connector/Makefile @@ -0,0 +1,45 @@ +# $FreeBSD$ + +PORTNAME= java-simple-serial-connector +PORTVERSION= 2.8.0 +DISTVERSIONPREFIX= v +CATEGORIES= comms java + +MAINTAINER= bsdports@kyle-evans.net +COMMENT= Library for working with serial ports from Java + +LICENSE= LGPL3 + +USE_GITHUB= yes +GH_ACCOUNT= scream3r + +MAJOR_MINOR= ${PORTVERSION:C/(.*)\.[0-9]*/\\1/} +USE_JAVA= yes +USE_ANT= yes +ALL_TARGET= dist +CXXFLAGS+= -I${JAVA_HOME}/include -I${JAVA_HOME}/include/freebsd +WRKSRC_LIBS= ${WRKSRC}/src/java/libs + +PLIST_FILES= ${JAVA_HOME}/jre/lib/ext/jssc-${PORTVERSION}.jar + +.include <bsd.port.pre.mk> + +.if ${ARCH} == "armv6" || ${ARCH} == "aarch64" +ARCH= arm +.endif + +post-extract: + @${CP} ${FILESDIR}/build.xml.in ${WRKSRC}/build.xml + @${REINPLACE_CMD} -e 's|%%PORTVERSION%%|${PORTVERSION}|' ${WRKSRC}/build.xml + +pre-build: + ${RM} -r ${WRKSRC_LIBS}/* + ${MKDIR} ${WRKSRC_LIBS}/freebsd + (cd ${WRKSRC}/src/cpp/_nix_based && ${CXX} ${CXXFLAGS} ${CPPFLAGS} -shared -fPIC -o ${WRKSRC_LIBS}/freebsd/libjSSC-${MAJOR_MINOR}_${ARCH}.so jssc.cpp) + ${STRIP_CMD} ${WRKSRC_LIBS}/freebsd/libjSSC-${MAJOR_MINOR}_${ARCH}.so + +do-install: + @${MKDIR} ${STAGEDIR}${JAVA_HOME}/jre/lib/ext + ${CP} ${WRKSRC}/build/jssc-${PORTVERSION}.jar ${STAGEDIR}${JAVA_HOME}/jre/lib/ext + +.include <bsd.port.post.mk> diff --git a/comms/java-simple-serial-connector/distinfo b/comms/java-simple-serial-connector/distinfo new file mode 100644 index 000000000000..fe66340a465c --- /dev/null +++ b/comms/java-simple-serial-connector/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1477335330 +SHA256 (scream3r-java-simple-serial-connector-v2.8.0_GH0.tar.gz) = c3287bfc31ea81929739271b087b833fb7050686af6a90ec953c5b2f41b4d42d +SIZE (scream3r-java-simple-serial-connector-v2.8.0_GH0.tar.gz) = 149937 diff --git a/comms/java-simple-serial-connector/files/build.xml.in b/comms/java-simple-serial-connector/files/build.xml.in new file mode 100644 index 000000000000..da8c2facf368 --- /dev/null +++ b/comms/java-simple-serial-connector/files/build.xml.in @@ -0,0 +1,25 @@ +<project name="JSSC" basedir="."> + <property name="src" location="src/java" /> + <property name="build" location="build" /> + <property name="libs" location="${src}/libs" /> + <property name="libsto" location="${build}/libs" /> + <property name="dist" location="dist" /> + + <target name="init"> + <tstamp /> + <mkdir dir="${build}" /> + </target> + + <target name="compile" depends="init" description="Compile JSSC"> + <javac srcdir="${src}" destdir="${build}" encoding="UTF-8" /> + <copy todir="${libsto}"> + <fileset dir="${libs}" /> + </copy> + </target> + + <target name="dist" depends="compile" description="Build distributable"> + <jar destfile="${build}/jssc-%%PORTVERSION%%.jar"> + <fileset dir="${build}" /> + </jar> + </target> +</project> diff --git a/comms/java-simple-serial-connector/files/patch-src_cpp___nix__based_jssc.cpp b/comms/java-simple-serial-connector/files/patch-src_cpp___nix__based_jssc.cpp new file mode 100644 index 000000000000..fe42d023c863 --- /dev/null +++ b/comms/java-simple-serial-connector/files/patch-src_cpp___nix__based_jssc.cpp @@ -0,0 +1,11 @@ +--- src/cpp/_nix_based/jssc.cpp.orig 2016-10-24 19:48:41 UTC ++++ src/cpp/_nix_based/jssc.cpp +@@ -545,7 +545,7 @@ JNIEXPORT jbyteArray JNICALL Java_jssc_S + FD_CLR(portHandle, &read_fd_set); + jbyteArray returnArray = env->NewByteArray(byteCount); + env->SetByteArrayRegion(returnArray, 0, byteCount, lpBuffer); +- delete lpBuffer; ++ delete[] lpBuffer; + return returnArray; + } + diff --git a/comms/java-simple-serial-connector/files/patch-src_cpp_jssc__SerialNativeInterface.h b/comms/java-simple-serial-connector/files/patch-src_cpp_jssc__SerialNativeInterface.h new file mode 100644 index 000000000000..a8d47509d322 --- /dev/null +++ b/comms/java-simple-serial-connector/files/patch-src_cpp_jssc__SerialNativeInterface.h @@ -0,0 +1,11 @@ +--- src/cpp/jssc_SerialNativeInterface.h.orig 2016-10-24 19:47:55 UTC ++++ src/cpp/jssc_SerialNativeInterface.h +@@ -43,6 +43,8 @@ extern "C" { + #define jssc_SerialNativeInterface_OS_SOLARIS 2L + #undef jssc_SerialNativeInterface_OS_MAC_OS_X + #define jssc_SerialNativeInterface_OS_MAC_OS_X 3L ++#undef jssc_SerialNativeInterface_OS_FREEBSD ++#define jssc_SerialNativeInterface_OS_FREEBSD 4L + #undef jssc_SerialNativeInterface_ERR_PORT_BUSY + #define jssc_SerialNativeInterface_ERR_PORT_BUSY -1LL + #undef jssc_SerialNativeInterface_ERR_PORT_NOT_FOUND diff --git a/comms/java-simple-serial-connector/files/patch-src_java_jssc_SerialNativeInterface.java b/comms/java-simple-serial-connector/files/patch-src_java_jssc_SerialNativeInterface.java new file mode 100644 index 000000000000..fadcacf8c820 --- /dev/null +++ b/comms/java-simple-serial-connector/files/patch-src_java_jssc_SerialNativeInterface.java @@ -0,0 +1,62 @@ +--- src/java/jssc/SerialNativeInterface.java.orig 2014-01-24 14:34:02 UTC ++++ src/java/jssc/SerialNativeInterface.java +@@ -43,6 +43,7 @@ public class SerialNativeInterface { + public static final int OS_WINDOWS = 1; + public static final int OS_SOLARIS = 2;//since 0.9.0 + public static final int OS_MAC_OS_X = 3;//since 0.9.0 ++ public static final int OS_FREEBSD = 4; + + private static int osType = -1; + +@@ -108,36 +109,16 @@ public class SerialNativeInterface { + osName = "mac_os_x"; + osType = OS_MAC_OS_X; + }//<- since 0.9.0 ++ else if(osName.equals("FreeBSD")){ ++ osName = "freebsd"; ++ osType = OS_FREEBSD; ++ } + + if(architecture.equals("i386") || architecture.equals("i686")){ +- architecture = "x86"; ++ architecture = "i386"; + } + else if(architecture.equals("amd64") || architecture.equals("universal")){//os.arch "universal" since 2.6.0 +- architecture = "x86_64"; +- } +- else if(architecture.equals("arm")) {//since 2.1.0 +- String floatStr = "sf"; +- if(javaLibPath.toLowerCase().contains("gnueabihf") || javaLibPath.toLowerCase().contains("armhf")){ +- floatStr = "hf"; +- } +- else { +- try { +- Process readelfProcess = Runtime.getRuntime().exec("readelf -A /proc/self/exe"); +- BufferedReader reader = new BufferedReader(new InputStreamReader(readelfProcess.getInputStream())); +- String buffer = ""; +- while((buffer = reader.readLine()) != null && !buffer.isEmpty()){ +- if(buffer.toLowerCase().contains("Tag_ABI_VFP_args".toLowerCase())){ +- floatStr = "hf"; +- break; +- } +- } +- reader.close(); +- } +- catch (Exception ex) { +- //Do nothing +- } +- } +- architecture = "arm" + floatStr; ++ architecture = "amd64"; + } + + libFolderPath = libRootFolder + fileSeparator + ".jssc" + fileSeparator + osName; +@@ -259,7 +240,7 @@ public class SerialNativeInterface { + } + + /** +- * Get OS type (OS_LINUX || OS_WINDOWS || OS_SOLARIS) ++ * Get OS type (OS_LINUX || OS_WINDOWS || OS_SOLARIS || OS_FREEBSD) + * + * @since 0.8 + */ diff --git a/comms/java-simple-serial-connector/files/patch-src_java_jssc_SerialPort.java b/comms/java-simple-serial-connector/files/patch-src_java_jssc_SerialPort.java new file mode 100644 index 000000000000..136f195d9577 --- /dev/null +++ b/comms/java-simple-serial-connector/files/patch-src_java_jssc_SerialPort.java @@ -0,0 +1,32 @@ +--- src/java/jssc/SerialPort.java.orig 2016-10-24 19:44:26 UTC ++++ src/java/jssc/SerialPort.java +@@ -264,7 +264,8 @@ public class SerialPort { + checkPortOpened("setEventsMask()"); + if(SerialNativeInterface.getOsType() == SerialNativeInterface.OS_LINUX || + SerialNativeInterface.getOsType() == SerialNativeInterface.OS_SOLARIS || +- SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X){//since 0.9.0 ++ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X || ++ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_FREEBSD){//since 0.9.0 + linuxMask = mask; + if(mask > 0){ + maskAssigned = true; +@@ -298,7 +299,8 @@ public class SerialPort { + checkPortOpened("getEventsMask()"); + if(SerialNativeInterface.getOsType() == SerialNativeInterface.OS_LINUX || + SerialNativeInterface.getOsType() == SerialNativeInterface.OS_SOLARIS || +- SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X){//since 0.9.0 ++ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X || ++ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_FREEBSD){//since 0.9.0 + return linuxMask; + } + return serialInterface.getEventsMask(portHandle); +@@ -1041,7 +1043,8 @@ public class SerialPort { + private EventThread getNewEventThread() { + if(SerialNativeInterface.getOsType() == SerialNativeInterface.OS_LINUX || + SerialNativeInterface.getOsType() == SerialNativeInterface.OS_SOLARIS || +- SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X){//since 0.9.0 ++ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X || ++ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_FREEBSD){//since 0.9.0 + return new LinuxEventThread(); + } + return new EventThread(); diff --git a/comms/java-simple-serial-connector/files/patch-src_java_jssc_SerialPortList.java b/comms/java-simple-serial-connector/files/patch-src_java_jssc_SerialPortList.java new file mode 100644 index 000000000000..8e43754c1f69 --- /dev/null +++ b/comms/java-simple-serial-connector/files/patch-src_java_jssc_SerialPortList.java @@ -0,0 +1,14 @@ +--- src/java/jssc/SerialPortList.java.orig 2016-10-24 19:46:27 UTC ++++ src/java/jssc/SerialPortList.java +@@ -57,6 +57,11 @@ public class SerialPortList { + PORTNAMES_PATH = "/dev/"; + break; + } ++ case SerialNativeInterface.OS_FREEBSD: { ++ PORTNAMES_REGEXP = Pattern.compile("cuaU[0-9]{1,3}"); ++ PORTNAMES_PATH = "/dev/"; ++ break; ++ } + case SerialNativeInterface.OS_WINDOWS: { + PORTNAMES_REGEXP = Pattern.compile(""); + PORTNAMES_PATH = ""; diff --git a/comms/java-simple-serial-connector/pkg-descr b/comms/java-simple-serial-connector/pkg-descr new file mode 100644 index 000000000000..863b0643822f --- /dev/null +++ b/comms/java-simple-serial-connector/pkg-descr @@ -0,0 +1,3 @@ +Library for working with serial ports in Java. + +WWW: https://github.com/scream3r/java-simple-serial-connector |