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

View File

@@ -0,0 +1,23 @@
# Created by: Alexey Dokuchaev <danfe@FreeBSD.org>
# $FreeBSD: head/www/http-parser/Makefile 529086 2020-03-25 09:46:27Z danfe $
PORTNAME= http-parser
PORTVERSION= 2.9.4
DISTVERSIONPREFIX= v
CATEGORIES= www
PKGNAMEPREFIX= lib
MAINTAINER= danfe@FreeBSD.org
COMMENT= HTTP request/response parser written in C
USE_GITHUB= yes
GH_ACCOUNT= nodejs
USES= gmake
USE_LDCONFIG= yes
MAKE_ENV= STRIP="${STRIP}"
ALL_TARGET= library
INSTALL_TARGET= install-strip
TEST_TARGET= test
.include <bsd.port.mk>

View File

@@ -0,0 +1,3 @@
TIMESTAMP = 1585047246
SHA256 (nodejs-http-parser-v2.9.4_GH0.tar.gz) = 467b9e30fd0979ee301065e70f637d525c28193449e1b13fbcb1b1fab3ad224f
SIZE (nodejs-http-parser-v2.9.4_GH0.tar.gz) = 52056

View File

@@ -0,0 +1,40 @@
--- ./Makefile.orig 2020-03-24 12:54:06.000000000 +0200
+++ ./Makefile 2020-07-23 10:10:53.858715000 +0200
@@ -35,8 +35,8 @@
HELPER = wine
else
SOEXT ?= so
-SONAME ?= $(SOLIBNAME).$(SOEXT).$(SOMAJOR).$(SOMINOR)
-LIBNAME ?= $(SOLIBNAME).$(SOEXT).$(SOMAJOR).$(SOMINOR).$(SOREV)
+SONAME ?= $(SOLIBNAME).$(SOEXT).$(SOMAJOR)
+LIBNAME ?= $(SOLIBNAME).$(SOEXT).$(SOMAJOR)
endif
CC?=gcc
@@ -54,7 +54,7 @@
CFLAGS += -Wall -Wextra -Werror
CFLAGS_DEBUG = $(CFLAGS) -O0 -g $(CFLAGS_DEBUG_EXTRA)
-CFLAGS_FAST = $(CFLAGS) -O3 $(CFLAGS_FAST_EXTRA)
+CFLAGS_FAST = $(CFLAGS) $(CFLAGS_FAST_EXTRA)
CFLAGS_BENCH = $(CFLAGS_FAST) -Wno-unused-parameter
CFLAGS_LIB = $(CFLAGS_FAST) -fPIC
@@ -133,13 +133,13 @@
install: library
$(INSTALL) -D http_parser.h $(DESTDIR)$(INCLUDEDIR)/http_parser.h
$(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
- ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
+# ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SOLIBNAME).$(SOEXT)
install-strip: library
- $(INSTALL) -D http_parser.h $(DESTDIR)$(INCLUDEDIR)/http_parser.h
- $(INSTALL) -D -s $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
- ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
+ $(INSTALL) http_parser.h $(DESTDIR)$(INCLUDEDIR)
+ $(INSTALL) $(STRIP) $(LIBNAME) $(DESTDIR)$(LIBDIR)
+# ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
ln -sf $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SOLIBNAME).$(SOEXT)
uninstall:

View File

@@ -0,0 +1,8 @@
This is a parser for HTTP messages written in C. It parses both requests
and responses. The parser is designed to be used in performance HTTP
applications. It does not make any system calls nor allocations, it does
not buffer data, it can be interrupted at anytime. Depending on the
architecture, it only requires about 40 bytes of data per message stream
(in a web server that is per connection).
WWW: https://github.com/nodejs/http-parser

View File

@@ -0,0 +1,3 @@
include/http_parser.h
lib/libhttp_parser.so
lib/libhttp_parser.so.2