aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2019-12-25 20:32:29 +0100
committerJakub Jirutka <jakub@jirutka.cz>2019-12-25 20:30:55 +0100
commited20640a04872f7ab58e6e4428e1536b81141213 (patch)
tree94a4695dbd68d66d7df3350e3b02e9813de0fc3e
parent0f5e8e387acadcca36686b7ba0be4225c2b6518b (diff)
downloadaports-ed20640a04872f7ab58e6e4428e1536b81141213.tar.bz2
aports-ed20640a04872f7ab58e6e4428e1536b81141213.tar.xz
testing/lowjs: new aport
-rw-r--r--testing/lowjs/APKBUILD84
-rw-r--r--testing/lowjs/lib-path.patch33
-rw-r--r--testing/lowjs/make-flags.patch20
-rw-r--r--testing/lowjs/open62541-gcc9.patch13
-rw-r--r--testing/lowjs/test.js1
-rw-r--r--testing/lowjs/unbundle-c-ares.patch93
-rw-r--r--testing/lowjs/unbundle-mbedtls.patch44
-rw-r--r--testing/lowjs/use-npm-ci.patch13
8 files changed, 301 insertions, 0 deletions
diff --git a/testing/lowjs/APKBUILD b/testing/lowjs/APKBUILD
new file mode 100644
index 0000000000..7a741199ff
--- /dev/null
+++ b/testing/lowjs/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=lowjs
+# NOTE: Don't forget to update _gitrev!
+pkgver=1.4.2
+_gitrev="3bb6c96eb9efd6a6308ae662586bef774c738c97"
+_gitrev_open62541="9f1cbfa96fd050220c86d3e5939d88cab1b680ce"
+_gitrev_duktape="44ca54f726bfa651a7ab59286dd5c371dba2ddfc"
+pkgrel=0
+pkgdesc="A port of Node.JS with far lower system requirements"
+url="https://www.neonious.com/lowjs/"
+arch="all"
+license="custom"
+makedepends="c-ares-dev cmake jq mbedtls-dev npm python2 py2-pip"
+subpackages="$pkgname-doc"
+# FIXME: https://github.com/neonious/lowjs/commit/3bb6c96eb9efd6a6308ae662586bef774c738c97#comments.
+source="https://github.com/neonious/lowjs/archive/$_gitrev/$pkgname-$_gitrev.tar.gz
+ https://github.com/neonious/open62541/archive/$_gitrev_open62541/open62541-$_gitrev_open62541.tar.gz
+ https://github.com/svaarala/duktape/archive/$_gitrev_duktape/duktape-$_gitrev_duktape.tar.gz
+ use-npm-ci.patch
+ lib-path.patch
+ open62541-gcc9.patch
+ unbundle-c-ares.patch
+ unbundle-mbedtls.patch
+ make-flags.patch
+ test.js
+ "
+builddir="$srcdir/$pkgname-$_gitrev"
+
+prepare() {
+ cd "$builddir"
+
+ rm -Rf deps/open62541
+ mv ../open62541-$_gitrev_open62541 deps/open62541
+
+ rm -Rf deps/duktape
+ mv ../duktape-$_gitrev_duktape deps/duktape
+
+ pip2 install --user pyyaml
+
+ default_prepare
+}
+
+build() {
+ local commit_date=$(curl -fsSL https://api.github.com/repos/neonious/lowjs/commits/$_gitrev \
+ | jq -r '.commit.committer.date | .[0:4]+.[5:7]+.[8:10]')
+ [ "$commit_date" ] || { eerror "Failed to get commit's date"; return 1; }
+
+ unset LDFLAGS # fails to build with -Wl,--as-needed
+
+ make -j1 \
+ LOW_LIB_PATH="../lib/low/" \
+ LOW_VERSION="${commit_date}_$(echo "$_gitrev" | cut -c 1-10)"
+}
+
+check() {
+ # XXX: See https://github.com/neonious/lowjs/issues/81
+ #( cd test/tests_script && npm ci )
+ #npm run test -- run
+
+ test -L lib/low || ln -s . lib/low
+ ./bin/low "$srcdir"/test.js
+ rm lib/low
+}
+
+package() {
+ install -d "$pkgdir"/usr/lib/low
+ cp -r lib/* "$pkgdir"/usr/lib/low/
+ rm "$pkgdir"/usr/lib/low/BUILT
+
+ install -D -m 0755 bin/low "$pkgdir"/usr/bin/low
+ install -D -m 0644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="f567f60da89ccd710486e2d54e00298b9a8f0e337c32c93b678bc4c3f97eddd77582dbf378549ccb8513d19e8b1ce9b05189246d44f44decea359e62ef82fb4b lowjs-3bb6c96eb9efd6a6308ae662586bef774c738c97.tar.gz
+7c71ff0ce8cda56e4a4cc8e416172fd847f7289d45c4e44e54e56f3081b914d9401c86341ae3d0a4bccd7b6e9c3b274c92892e67e3cd300824bf900cd9f02ac1 open62541-9f1cbfa96fd050220c86d3e5939d88cab1b680ce.tar.gz
+e7f4eaf3f5cb8c791a25c9a1a213953423c6e063d7e3049ccab70fee977bfb4949e23aed50d9720539b798dc9d2e65227bca165ad4faa04797318492b4f06cfc duktape-44ca54f726bfa651a7ab59286dd5c371dba2ddfc.tar.gz
+b8aecec6aa87eb2ab7ffecaca1989f922042ee534612229872bad10bc0e304951cb66a1d1aa3ba4e76384ca2ea28b8c5b7176eacf6b7df3d59ea7435b7894a48 use-npm-ci.patch
+f1ce54e839160f559b31d588cc61b068b28e7844d4f6987f17396d7dfee8417ae861896742c746131c25686204c729f305610644c5526963622c4a8bc5517b41 lib-path.patch
+460b7a8fc4d328c7315985bef880a3fbb20c9459f27d8e6ad49f098a0e8edc787756a89ac9e7f7acecb3b860f6e70d1348842092261df39770b72cbeb710e81d open62541-gcc9.patch
+a0ff4c6ad0891be0d8246cd2cddd7d6015d948778ec52e49fcd1eb8da53c2b7f861b3d38e52f3bf7ec1ad6c2cdba35657cee7dddeb1e7e77e9430995cce23291 unbundle-c-ares.patch
+d90f1f16390530cc328804f8232f821217a705e12e8d3cd47b787f779ec2f9cafbb7416c05d8d8ed96cc71e52bd86deee8deffded80ee297c50735998b9af70e unbundle-mbedtls.patch
+577653248d6e80cf7065f2b763355bdd1a24853821643a4b14e768e32ae8b88db08ad9820549a7cf49ea1462d0d920a5008fd158a35afebdde5784b48e51718c make-flags.patch
+9ee7d585c9ce17ca00e86e0f74976883fa14e70f3728cf230256f2570dafdaa3adeae1922de5f0dcb74bba8577f9394c54441bc3729c1bb58bb6a298c26651d0 test.js"
diff --git a/testing/lowjs/lib-path.patch b/testing/lowjs/lib-path.patch
new file mode 100644
index 0000000000..e6711783e3
--- /dev/null
+++ b/testing/lowjs/lib-path.patch
@@ -0,0 +1,33 @@
+--- a/app/low_config.h
++++ b/app/low_config.h
+@@ -25,4 +25,8 @@
+
+ #define LOW_ESP32_LWIP_SPECIALITIES 0
+
++#ifndef LOW_LIB_PATH
++#define LOW_LIB_PATH "../lib/"
++#endif
++
+ #endif /* __LOW_CONFIG_H__ */
+--- a/app/main.cpp
++++ b/app/main.cpp
+@@ -37,7 +37,7 @@
+ if(*argc < 2)
+ return;
+
+- const char postfix[] = "../lib/low-exe";
++ const char postfix[] = LOW_LIB_PATH "/low-exe";
+ int len = strlen((*argv)[0]);
+ if(len < sizeof(postfix) || strcmp((*argv)[0] + len - (sizeof(postfix) - 1), postfix) != 0)
+ return;
+--- a/src/low_system.cpp
++++ b/src/low_system.cpp
+@@ -129,7 +129,7 @@
+
+ g_low_system.lib_path = NULL;
+
+- const char lib_add_path[] = "../lib/";
++ const char lib_add_path[] = LOW_LIB_PATH;
+ int lib_add_path_len = sizeof(lib_add_path) - 1;
+
+ #ifdef __APPLE__
diff --git a/testing/lowjs/make-flags.patch b/testing/lowjs/make-flags.patch
new file mode 100644
index 0000000000..e329520597
--- /dev/null
+++ b/testing/lowjs/make-flags.patch
@@ -0,0 +1,20 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,13 +1,13 @@
+-FLAGS = -O3 -DLOW_VERSION="\"`git show -s --format=%cd --date=format:%Y%m%d`_`git rev-parse --short HEAD`\""
++FLAGS = -DLOW_VERSION="\"$(LOW_VERSION)\"" -DLOW_LIB_PATH="\"$(LOW_LIB_PATH)\""
+
+ C = gcc
+-CFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low
++CFLAGS += $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low
+
+ CXX = g++
+-CXXFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
++CXXFLAGS += $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
+
+ LD = g++
+-LDFLAGS = $(FLAGS) -lm -ldl -lpthread -lcares -lmbedcrypto -lmbedtls -lmbedx509 deps/open62541/build/bin/libopen62541.a
++LDFLAGS += $(FLAGS) -lm -ldl -lpthread -lcares -lmbedcrypto -lmbedtls -lmbedx509 deps/open62541/build/bin/libopen62541.a
+
+ OBJECTS_LOW = \
+ app/main.o \
diff --git a/testing/lowjs/open62541-gcc9.patch b/testing/lowjs/open62541-gcc9.patch
new file mode 100644
index 0000000000..9e080dae20
--- /dev/null
+++ b/testing/lowjs/open62541-gcc9.patch
@@ -0,0 +1,13 @@
+Adjust compile flags for open62541 to build with gcc 9.
+
+--- a/deps/open62541/CMakeLists.txt
++++ b/deps/open62541/CMakeLists.txt
+@@ -407,6 +407,8 @@
+ -Wc++-compat
+ -fno-strict-aliasing # fewer compiler assumptions about pointer types
+ -fexceptions # recommended for multi-threaded C code, also in combination with C++ code
++ -Wno-cast-function-type
++ -Wno-restrict
+ )
+ set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Werror")
+
diff --git a/testing/lowjs/test.js b/testing/lowjs/test.js
new file mode 100644
index 0000000000..19dfa14dab
--- /dev/null
+++ b/testing/lowjs/test.js
@@ -0,0 +1 @@
+console.log('Hello, world!')
diff --git a/testing/lowjs/unbundle-c-ares.patch b/testing/lowjs/unbundle-c-ares.patch
new file mode 100644
index 0000000000..4a58c76096
--- /dev/null
+++ b/testing/lowjs/unbundle-c-ares.patch
@@ -0,0 +1,93 @@
+--- a/Makefile
++++ b/Makefile
+@@ -7,7 +7,7 @@
+ CXXFLAGS += $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/mbedtls/include -Ideps/mbedtls/crypto/include -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
+
+ LD = g++
+-LDFLAGS = $(FLAGS) -lm -ldl -lpthread deps/open62541/build/bin/libopen62541.a
++LDFLAGS = $(FLAGS) -lm -ldl -lpthread -lcares deps/open62541/build/bin/libopen62541.a
+
+ OBJECTS_LOW = \
+ app/main.o \
+@@ -50,13 +50,12 @@
+
+ clean:
+ rm -rf */*.o */*.d bin/* deps/duktape/src-low lib lib_js/build node_modules util/dukc test/duk_crash
+- cd deps/c-ares && make clean
+ cd deps/mbedtls && make clean
+ cd deps/open62541 && rm -rf build
+
+ bin/low: $(OBJECTS) $(OBJECTS_LOW) deps/mbedtls/programs/test/benchmark
+ mkdir -p bin
+- $(LD) -o bin/low deps/mbedtls/library/*.o deps/mbedtls/crypto/library/*.o deps/c-ares/libcares_la-*.o $(OBJECTS) $(OBJECTS_LOW) $(LDFLAGS)
++ $(LD) -o bin/low deps/mbedtls/library/*.o deps/mbedtls/crypto/library/*.o $(OBJECTS) $(OBJECTS_LOW) $(LDFLAGS)
+ util/dukc: deps/duktape/src-low/duktape.o util/dukc.o
+ $(LD) -o util/dukc deps/duktape/src-low/duktape.o util/dukc.o $(LDFLAGS)
+
+@@ -70,7 +69,7 @@
+ $(CXX) $(CXXFLAGS) -MMD -o $@ -c $<
+ %.o : %.c Makefile
+ $(C) $(CFLAGS) -MMD -o $@ -c $<
+-%.o : %.cpp Makefile deps/c-ares/.libs/libcares.a deps/open62541/build/bin/libopen62541.a
++%.o : %.cpp Makefile deps/open62541/build/bin/libopen62541.a
+ $(CXX) $(CXXFLAGS) -MMD -o $@ -c $<
+
+ -include $(OBJECTS:.o=.d) $(OBJECTS_LOW:.o=.d)
+@@ -111,13 +110,6 @@
+ -DDUK_USE_SECTION_B \
+ -DDUK_USE_CPP_EXCEPTIONS
+
+-deps/c-ares/configure:
+- cd deps/c-ares && . ./buildconf
+-deps/c-ares/Makefile: deps/c-ares/configure
+- cd deps/c-ares && ./configure
+-deps/c-ares/.libs/libcares.a: deps/c-ares/Makefile
+- cd deps/c-ares && make
+-
+ deps/mbedtls/programs/test/benchmark:
+ cd deps/mbedtls && make
+
+--- a/src/LowDNSResolver.cpp
++++ b/src/LowDNSResolver.cpp
+@@ -13,7 +13,7 @@
+ #include "low_alloc.h"
+ #include "low_config.h"
+
+-#include "../deps/c-ares/nameser.h"
++#include <arpa/nameser.h>
+
+ #include <arpa/inet.h>
+ #include <unistd.h>
+--- a/src/LowDNSResolver.h
++++ b/src/LowDNSResolver.h
+@@ -7,7 +7,7 @@
+
+ #include "LowLoopCallback.h"
+
+-#include "../deps/c-ares/ares.h"
++#include <ares.h>
+
+ struct low_t;
+
+--- a/src/low_main.cpp
++++ b/src/low_main.cpp
+@@ -24,7 +24,7 @@
+
+ #include "duktape.h"
+ #if LOW_INCLUDE_CARES_RESOLVER
+-#include "../deps/c-ares/ares.h"
++#include <ares.h>
+ #include "LowDNSResolver.h"
+ #endif /* LOW_INCLUDE_CARES_RESOLVER */
+
+--- a/src/low_process.cpp
++++ b/src/low_process.cpp
+@@ -36,7 +36,7 @@
+ #endif /* __APPLE__ */
+
+ #if LOW_INCLUDE_CARES_RESOLVER
+-#include "../deps/c-ares/ares.h"
++#include <ares.h>
+ #endif /* LOW_INCLUDE_CARES_RESOLVER */
+ #include "mbedtls/version.h"
+
diff --git a/testing/lowjs/unbundle-mbedtls.patch b/testing/lowjs/unbundle-mbedtls.patch
new file mode 100644
index 0000000000..433a737312
--- /dev/null
+++ b/testing/lowjs/unbundle-mbedtls.patch
@@ -0,0 +1,44 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,13 +1,13 @@
+ FLAGS = -DLOW_VERSION="\"$(LOW_VERSION)\""
+
+ C = gcc
+-CFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/mbedtls/include -Ideps/mbedtls/crypto/include
++CFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low
+
+ CXX = g++
+-CXXFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/mbedtls/include -Ideps/mbedtls/crypto/include -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
++CXXFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
+
+ LD = g++
+-LDFLAGS = $(FLAGS) -lm -ldl -lpthread -lcares deps/open62541/build/bin/libopen62541.a
++LDFLAGS = $(FLAGS) -lm -ldl -lpthread -lcares -lmbedcrypto -lmbedtls -lmbedx509 deps/open62541/build/bin/libopen62541.a
+
+ OBJECTS_LOW = \
+ app/main.o \
+@@ -50,12 +50,11 @@
+
+ clean:
+ rm -rf */*.o */*.d bin/* deps/duktape/src-low lib lib_js/build node_modules util/dukc test/duk_crash
+- cd deps/mbedtls && make clean
+ cd deps/open62541 && rm -rf build
+
+-bin/low: $(OBJECTS) $(OBJECTS_LOW) deps/mbedtls/programs/test/benchmark
++bin/low: $(OBJECTS) $(OBJECTS_LOW)
+ mkdir -p bin
+- $(LD) -o bin/low deps/mbedtls/library/*.o deps/mbedtls/crypto/library/*.o $(OBJECTS) $(OBJECTS_LOW) $(LDFLAGS)
++ $(LD) -o bin/low $(OBJECTS) $(OBJECTS_LOW) $(LDFLAGS)
+ util/dukc: deps/duktape/src-low/duktape.o util/dukc.o
+ $(LD) -o util/dukc deps/duktape/src-low/duktape.o util/dukc.o $(LDFLAGS)
+
+@@ -109,9 +108,6 @@
+ -DDUK_USE_SYMBOL_BUILTIN \
+ -DDUK_USE_SECTION_B \
+ -DDUK_USE_CPP_EXCEPTIONS
+-
+-deps/mbedtls/programs/test/benchmark:
+- cd deps/mbedtls && make
+
+ deps/open62541/build/bin/libopen62541.a:
+ cd deps/open62541 && rm -rf build && mkdir build
diff --git a/testing/lowjs/use-npm-ci.patch b/testing/lowjs/use-npm-ci.patch
new file mode 100644
index 0000000000..d57ef22e81
--- /dev/null
+++ b/testing/lowjs/use-npm-ci.patch
@@ -0,0 +1,13 @@
+See https://docs.npmjs.com/cli/ci.html
+
+--- a/Makefile
++++ b/Makefile
+@@ -84,7 +84,7 @@
+ cp util/root-certs.json lib/internal
+ touch lib/BUILT
+ node_modules/BUILT: package.json
+- npm install
++ npm ci
+ touch node_modules/BUILT
+
+ deps/duktape/src-low/duktape.c: $(shell find deps/duktape/src-input)