diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2019-12-25 20:32:29 +0100 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2019-12-25 20:30:55 +0100 |
commit | ed20640a04872f7ab58e6e4428e1536b81141213 (patch) | |
tree | 94a4695dbd68d66d7df3350e3b02e9813de0fc3e | |
parent | 0f5e8e387acadcca36686b7ba0be4225c2b6518b (diff) | |
download | aports-ed20640a04872f7ab58e6e4428e1536b81141213.tar.bz2 aports-ed20640a04872f7ab58e6e4428e1536b81141213.tar.xz |
testing/lowjs: new aport
-rw-r--r-- | testing/lowjs/APKBUILD | 84 | ||||
-rw-r--r-- | testing/lowjs/lib-path.patch | 33 | ||||
-rw-r--r-- | testing/lowjs/make-flags.patch | 20 | ||||
-rw-r--r-- | testing/lowjs/open62541-gcc9.patch | 13 | ||||
-rw-r--r-- | testing/lowjs/test.js | 1 | ||||
-rw-r--r-- | testing/lowjs/unbundle-c-ares.patch | 93 | ||||
-rw-r--r-- | testing/lowjs/unbundle-mbedtls.patch | 44 | ||||
-rw-r--r-- | testing/lowjs/use-npm-ci.patch | 13 |
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) |