add java/java-simple-serial-connector net/libhttp-parser

This commit is contained in:
ziggi
2020-08-09 19:14:28 +00:00
parent 9a8a25e105
commit 7c67e0b556
14 changed files with 285 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
# $FreeBSD: head/comms/java-simple-serial-connector/Makefile 495537 2019-03-13 03:03:56Z ler $
PORTNAME= java-simple-serial-connector
PORTVERSION= 2.8.0
DISTVERSIONPREFIX= v
CATEGORIES= comms java
MAINTAINER= kevans@FreeBSD.org
COMMENT= Library for working with serial ports from Java
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} == aarch64 || ${ARCH} == armv6 || ${ARCH} == armv7
JSSC_ARCH= arm
.else
JSSC_ARCH= ${ARCH}
.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}_${JSSC_ARCH}.so jssc.cpp
${STRIP_CMD} ${WRKSRC_LIBS}/freebsd/libjSSC-${MAJOR_MINOR}_${JSSC_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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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
*/

View File

@@ -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();

View File

@@ -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 = "";

View File

@@ -0,0 +1,3 @@
Library for working with serial ports in Java.
WWW: https://github.com/scream3r/java-simple-serial-connector