From bd51f439a171f148c53536d121ba4e2897654ffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Thu, 23 Jul 2015 08:17:25 +0200 Subject: [PATCH 01/17] setuptools: new recipe --- recipes/setuptools/setuptools.inc | 14 ++++++++++++++ recipes/setuptools/setuptools_18.0.1.oe | 3 +++ recipes/setuptools/setuptools_18.0.1.oe.sig | 1 + 3 files changed, 18 insertions(+) create mode 100644 recipes/setuptools/setuptools.inc create mode 100644 recipes/setuptools/setuptools_18.0.1.oe create mode 100644 recipes/setuptools/setuptools_18.0.1.oe.sig diff --git a/recipes/setuptools/setuptools.inc b/recipes/setuptools/setuptools.inc new file mode 100644 index 000000000..1e34cb40b --- /dev/null +++ b/recipes/setuptools/setuptools.inc @@ -0,0 +1,14 @@ +DESCRIPTION = "" +LICENSE = "" +RECIPE_TYPES = "native" + +SRC_URI = "https://bitbucket.org/pypa/setuptools/get/${PV}.tar.gz" +FILES_${PN} += "/lib/python/" + +do_compile() { + python setup.py build +} + +do_install() { + python setup.py install --home ${D} +} diff --git a/recipes/setuptools/setuptools_18.0.1.oe b/recipes/setuptools/setuptools_18.0.1.oe new file mode 100644 index 000000000..fed5fa117 --- /dev/null +++ b/recipes/setuptools/setuptools_18.0.1.oe @@ -0,0 +1,3 @@ +require setuptools.inc + +S = "${SRCDIR}/pypa-setuptools-e364795c1b09" diff --git a/recipes/setuptools/setuptools_18.0.1.oe.sig b/recipes/setuptools/setuptools_18.0.1.oe.sig new file mode 100644 index 000000000..31a26be14 --- /dev/null +++ b/recipes/setuptools/setuptools_18.0.1.oe.sig @@ -0,0 +1 @@ +353a1601c686db66d58b64028e9964bd648f8dbc 18.0.1.tar.gz From f298412278b9f4254f9e15db68503e5e09a6334a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Thu, 23 Jul 2015 08:18:21 +0200 Subject: [PATCH 02/17] gyp: new recipe --- recipes/gyp/gyp_git.oe | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 recipes/gyp/gyp_git.oe diff --git a/recipes/gyp/gyp_git.oe b/recipes/gyp/gyp_git.oe new file mode 100644 index 000000000..b189e4eb1 --- /dev/null +++ b/recipes/gyp/gyp_git.oe @@ -0,0 +1,21 @@ +DESCRIPTION = "GYP can Generate Your Projects." +LICENSE = "BSD-3" +RECIPE_TYPES = "native" +DEPENDS = "native:setuptools" + +SRC_REV = "commit=25ed9ac4ac2a4d2a08909225fbb6d56e89ad38a6" +SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https;${SRC_REV}" +S = "${SRCDIR}/gyp" +FILES_${PN} += "/lib/python" + +PYTHON_PATH = "${BUILD_SYSROOT}/lib/python" + +do_compile() { + export PYTHONPATH=${PYTHON_PATH} + python setup.py build +} + +do_install() { + export PYTHONPATH=${PYTHON_PATH} + python setup.py install --home ${D} +} From 28e3121fcd09ae7de30668f9410c67872261141d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Thu, 23 Jul 2015 08:19:07 +0200 Subject: [PATCH 03/17] libv8: new recipe --- .../0001-avoid-thin-static-archives.patch | 43 ++++++++++++ .../files/0001-remove-uci-and-libc-deps.patch | 33 +++++++++ ...test-if-target-compiler-supports-m32.patch | 34 +++++++++ recipes/libv8/libv8.inc | 70 +++++++++++++++++++ recipes/libv8/libv8_3.25.30.oe | 3 + recipes/libv8/libv8_3.25.30.oe.sig | 1 + 6 files changed, 184 insertions(+) create mode 100644 recipes/libv8/files/0001-avoid-thin-static-archives.patch create mode 100644 recipes/libv8/files/0001-remove-uci-and-libc-deps.patch create mode 100644 recipes/libv8/files/0001-test-if-target-compiler-supports-m32.patch create mode 100644 recipes/libv8/libv8.inc create mode 100644 recipes/libv8/libv8_3.25.30.oe create mode 100644 recipes/libv8/libv8_3.25.30.oe.sig diff --git a/recipes/libv8/files/0001-avoid-thin-static-archives.patch b/recipes/libv8/files/0001-avoid-thin-static-archives.patch new file mode 100644 index 000000000..3ead07e3d --- /dev/null +++ b/recipes/libv8/files/0001-avoid-thin-static-archives.patch @@ -0,0 +1,43 @@ +From 94261b84415ba0de27c4d3a8686e2edf74a01ce9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= +Date: Mon, 31 Aug 2015 13:32:16 +0200 +Subject: [PATCH] avoid thin static archives + +GYP builds thin archives by default on platforms that support it (the +GNU toolchain on Linux does, don't think OS X does.) disable +it by setting standalone_static_library: 1 in the v8.gyp file +--- + tools/gyp/v8.gyp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/tools/gyp/v8.gyp b/tools/gyp/v8.gyp +index 242ddf0..b43486f 100644 +--- a/tools/gyp/v8.gyp ++++ b/tools/gyp/v8.gyp +@@ -107,6 +107,7 @@ + { + 'target_name': 'v8_snapshot', + 'type': 'static_library', ++ 'standalone_static_library': 1, + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], +@@ -179,6 +180,7 @@ + { + 'target_name': 'v8_nosnapshot.<(v8_target_arch)', + 'type': 'static_library', ++ 'standalone_static_library': 1, + 'dependencies': [ + 'v8_base.<(v8_target_arch)', + ], +@@ -236,6 +238,7 @@ + { + 'target_name': 'v8_base.<(v8_target_arch)', + 'type': 'static_library', ++ 'standalone_static_library': 1, + 'variables': { + 'optimize': 'max', + }, +-- +2.5.1 + diff --git a/recipes/libv8/files/0001-remove-uci-and-libc-deps.patch b/recipes/libv8/files/0001-remove-uci-and-libc-deps.patch new file mode 100644 index 000000000..a14b845b2 --- /dev/null +++ b/recipes/libv8/files/0001-remove-uci-and-libc-deps.patch @@ -0,0 +1,33 @@ +From 64a85f689901b212616623a588f02871f2be7714 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= +Date: Tue, 21 Jul 2015 17:55:56 +0200 +Subject: [PATCH] remove uci and libc++ deps + +--- + Makefile | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index 7f161c6..b759bfa 100644 +--- a/Makefile ++++ b/Makefile +@@ -247,14 +247,13 @@ ANDROID_ARCHES = android_ia32 android_x64 android_arm android_arm64 \ + NACL_ARCHES = nacl_ia32 nacl_x64 + + # List of files that trigger Makefile regeneration: +-GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \ ++GYPFILES = \ + build/shim_headers.gypi build/features.gypi build/standalone.gypi \ + build/toolchain.gypi build/all.gyp build/mac/asan.gyp \ + test/cctest/cctest.gyp \ + test/unittests/unittests.gyp tools/gyp/v8.gyp \ + tools/parser-shell.gyp testing/gmock.gyp testing/gtest.gyp \ +- buildtools/third_party/libc++abi/libc++abi.gyp \ +- buildtools/third_party/libc++/libc++.gyp samples/samples.gyp \ ++ samples/samples.gyp \ + src/third_party/vtune/v8vtune.gyp src/d8.gyp + + # If vtunejit=on, the v8vtune.gyp will be appended. +-- +2.4.6 + diff --git a/recipes/libv8/files/0001-test-if-target-compiler-supports-m32.patch b/recipes/libv8/files/0001-test-if-target-compiler-supports-m32.patch new file mode 100644 index 000000000..58a3c99ee --- /dev/null +++ b/recipes/libv8/files/0001-test-if-target-compiler-supports-m32.patch @@ -0,0 +1,34 @@ +From 4886b953f559099768c612c2990288340f8c4289 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= +Date: Wed, 22 Jul 2015 11:45:02 +0200 +Subject: [PATCH] test if target compiler supports -m32 + +--- + build/toolchain.gypi | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/build/toolchain.gypi b/build/toolchain.gypi +index 4dbf42b..75ad9ff 100644 +--- a/build/toolchain.gypi ++++ b/build/toolchain.gypi +@@ -922,8 +922,15 @@ + ['_toolset=="target"', { + 'conditions': [ + ['target_cxx_is_biarch==1 and nacl_target_arch!="nacl_x64"', { +- 'cflags': [ '-m32' ], +- 'ldflags': [ '-m32' ], ++ # Pass -m32 to the compiler iff it understands the flag. ++ 'variables': { ++ 'm32flag': ' /dev/null 2>&1) ' + ++ '&& echo -n "-m32" || true)', ++ }, ++ 'cflags': [ '<(m32flag)' ], ++ 'ldflags': [ '<(m32flag)' ], + }], + ], + 'xcode_settings': { +-- +2.4.6 + diff --git a/recipes/libv8/libv8.inc b/recipes/libv8/libv8.inc new file mode 100644 index 000000000..b925e89d7 --- /dev/null +++ b/recipes/libv8/libv8.inc @@ -0,0 +1,70 @@ +DESCRIPTION = "V8 is Google's open source high-performance JavaScript engine, written in C++ and used in Google Chrome, the open source browser from Google." +LICENSE = "BSD" +DEPENDS = "native:gyp libpthread libdl librt" +RECIPE_TYPES = "machine native sdk" + +inherit make c++ library + +SRC_URI = " \ + https://chromium.googlesource.com/v8/v8.git/+archive/${PV}.tar.gz \ + file://0001-avoid-thin-static-archives.patch \ +" + +DEPENDS_${PN} = "libpthread libdl librt libgcc libm libstdc++" +RDEPENDS_${PN} = "libpthread libdl librt libgcc libm libstdc++" + +PYTHON_PATH = "${BUILD_SYSROOT}/lib/python" + +V8_TARGET_ARCH = "" +do_configure[prefuncs] += "do_configure_map_v8_arch" +def do_configure_map_v8_arch(d): + import re + a = d.getVar('TARGET_ARCH', True) + if re.match('i.86', a): a = 'ia32' + elif re.match('x86_64', a): a = 'x64' + elif re.match('arm', a): a = 'arm' + d.set('V8_TARGET_ARCH', a) + a = "{}.release".format(a) + d.set('V8_TARGET', a) + +UNPACK_CMD_tar_gz = "tar zx --no-same-owner --transform='s!^!${PN}-${PV}/!' -f %s" + +do_configure() { + export PYTHONPATH=${PYTHON_PATH} + ./build/gyp_v8 \ + --depth=. \ + -f make \ + --generator-output=out \ + -Dwerror= \ + -Dv8_target_arch=${V8_TARGET_ARCH} \ + -Dcomponent=shared_library \ + -Dsoname_version=${PV} \ + -Dconsole=readline \ + -Dclang=0 \ + -Dhost_clang=0 \ + -Dv8_enable_i18n_support=no \ + -Dlinux_use_gold_flags=0 \ + -Dv8_use_snapshot=0 +} + +do_compile() { + oe_runmake -C out builddir=out/Release V=1 BUILDTYPE=Release libv8.so.${PV} +} + +do_install() { + # install -libv8 shared object + install -d ${D}${libdir} + + # install -debug debug object + install -m0755 ${S}/out/out/Release/lib.target/libv8.so.${PV} \ + ${D}${libdir}/ + ln -s libv8.so.${PV} ${D}${libdir}/libv8.so + + # install -dev header files + install -d ${D}/${includedir} + install -m0644 ${S}/include/*.h ${D}/${includedir}/ + + # install -dev static libs + install -m0644 ${S}/out/out/Release/obj.target/tools/gyp/libv8*.a \ + ${D}${libdir}/ +} diff --git a/recipes/libv8/libv8_3.25.30.oe b/recipes/libv8/libv8_3.25.30.oe new file mode 100644 index 000000000..55118e35b --- /dev/null +++ b/recipes/libv8/libv8_3.25.30.oe @@ -0,0 +1,3 @@ +require libv8.inc + +LIBRARY_VERSION = "3" diff --git a/recipes/libv8/libv8_3.25.30.oe.sig b/recipes/libv8/libv8_3.25.30.oe.sig new file mode 100644 index 000000000..83584ffb6 --- /dev/null +++ b/recipes/libv8/libv8_3.25.30.oe.sig @@ -0,0 +1 @@ +3e0c7d38ee77837f33d39722cb8bc11381a67478 3.25.30.tar.gz From 7bc270e750bda85fe65167c5c9484c36cb3596df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Thu, 23 Jul 2015 08:21:53 +0200 Subject: [PATCH 04/17] asio: new recipe --- recipes/asio/asio.inc | 13 +++++++++++++ recipes/asio/asio_1.11.0.oe | 1 + recipes/asio/asio_1.11.0.oe.sig | 1 + 3 files changed, 15 insertions(+) create mode 100644 recipes/asio/asio.inc create mode 100644 recipes/asio/asio_1.11.0.oe create mode 100644 recipes/asio/asio_1.11.0.oe.sig diff --git a/recipes/asio/asio.inc b/recipes/asio/asio.inc new file mode 100644 index 000000000..667378f91 --- /dev/null +++ b/recipes/asio/asio.inc @@ -0,0 +1,13 @@ +DESCRIPTION = "Asio is a cross-platform C++ library for network and low-level \ + I/O programming that provides developers with a consistent asynchronous \ + model using a modern C++ approach." +HOMEPAGE = "http://think-async.com/Asio" +LICENSE = "BSL-1.0" +DEPENDS = "boost-dev libpthread openssl openssl-dev" + +PV_ = "${@d.get('PV', True).replace('.', '-')}" +SRC_URI = "https://github.com/chriskohlhoff/asio/archive/asio-${PV_}.tar.gz" +S = "${SRCDIR}/asio-asio-${PV_}/asio" + +require conf/fetch/sourceforge.conf +inherit autotools autotools-autoreconf c++ diff --git a/recipes/asio/asio_1.11.0.oe b/recipes/asio/asio_1.11.0.oe new file mode 100644 index 000000000..9f6a20743 --- /dev/null +++ b/recipes/asio/asio_1.11.0.oe @@ -0,0 +1 @@ +require asio.inc diff --git a/recipes/asio/asio_1.11.0.oe.sig b/recipes/asio/asio_1.11.0.oe.sig new file mode 100644 index 000000000..85c66285f --- /dev/null +++ b/recipes/asio/asio_1.11.0.oe.sig @@ -0,0 +1 @@ +1be2489015a1e1c7b8666a5a803d984cdec4a12b asio-1-11-0.tar.gz From 6f19fd1d644db24b95c2f4f9fa00fb9e771b386a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Thu, 23 Jul 2015 09:06:45 +0200 Subject: [PATCH 05/17] gperftools: new recipe --- recipes/gperftools/gperftools.inc | 30 ++++++++++++++++++++++++ recipes/gperftools/gperftools_2.4.oe | 3 +++ recipes/gperftools/gperftools_2.4.oe.sig | 1 + 3 files changed, 34 insertions(+) create mode 100644 recipes/gperftools/gperftools.inc create mode 100644 recipes/gperftools/gperftools_2.4.oe create mode 100644 recipes/gperftools/gperftools_2.4.oe.sig diff --git a/recipes/gperftools/gperftools.inc b/recipes/gperftools/gperftools.inc new file mode 100644 index 000000000..492f90dd2 --- /dev/null +++ b/recipes/gperftools/gperftools.inc @@ -0,0 +1,30 @@ +DESCRIPTION = "Fast, multi-threaded malloc() and nifty performance analysis tools" +HOMEPAGE = "http://code.google.com/p/gperftools/" +LICENSE = "BSD" +DEPENDS = "libunwind libpthread" + +inherit autotools c++ auto-package-libs +AUTO_PACKAGE_LIBS = "profiler tcmalloc tcmalloc_minimal tcmalloc_debug tcmalloc_minimal_debug tcmalloc_and_profiler" +AUTO_PACKAGE_LIBS_DEPENDS = "libc libgcc-s libm libstdc++" +AUTO_PACKAGE_LIBS_RDEPENDS = "libc libgcc-s libm libstdc++" +LIBRARY_VERSION = "4" +LIBRARY_VERSION_${PN}-libprofiler = "0" + +DEPENDS_${PN} = "libc libgcc-s libm libpthread libstdc++" +RDEPENDS_${PN} = "libc libgcc-s libm libpthread libstdc++" + + +DEPENDS_${PN}-libtcmalloc += "libpthread" +RDEPENDS_${PN}-libtcmalloc += "libpthread" + +DEPENDS_${PN}-libtcmalloc-minimal += "libpthread" +RDEPENDS_${PN}-libtcmalloc-minimal += "libpthread" + +DEPENDS_${PN}-libtcmalloc-debug += "libpthread" +RDEPENDS_${PN}-libtcmalloc-debug += "libpthread" + +DEPENDS_${PN}-libtcmalloc-minimal-debug += "libpthread" +RDEPENDS_${PN}-libtcmalloc-minimal-debug += "libpthread" + +DEPENDS_${PN}-libtcmalloc-and-profiler += "libpthread" +RDEPENDS_${PN}-libtcmalloc-and-profiler += "libpthread" diff --git a/recipes/gperftools/gperftools_2.4.oe b/recipes/gperftools/gperftools_2.4.oe new file mode 100644 index 000000000..0e05e0a36 --- /dev/null +++ b/recipes/gperftools/gperftools_2.4.oe @@ -0,0 +1,3 @@ +require gperftools.inc + +SRC_URI = "http://pkgs.fedoraproject.org/lookaside/pkgs/gperftools/gperftools-2.4.tar.gz/2171cea3bbe053036fb5d5d25176a160/gperftools-2.4.tar.gz" diff --git a/recipes/gperftools/gperftools_2.4.oe.sig b/recipes/gperftools/gperftools_2.4.oe.sig new file mode 100644 index 000000000..41f6ae676 --- /dev/null +++ b/recipes/gperftools/gperftools_2.4.oe.sig @@ -0,0 +1 @@ +13b904d0d1f220e43e4495f3403ee280c6da26ea gperftools-2.4.tar.gz From 3df3df50cb1acea4a739c516817069085385b159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Thu, 23 Jul 2015 09:10:14 +0200 Subject: [PATCH 06/17] libstemmer: new recipe --- recipes/libstemmer/libstemmer.inc | 13 +++++++++++++ recipes/libstemmer/libstemmer.oe | 1 + recipes/libstemmer/libstemmer.oe.sig | 1 + 3 files changed, 15 insertions(+) create mode 100644 recipes/libstemmer/libstemmer.inc create mode 100644 recipes/libstemmer/libstemmer.oe create mode 100644 recipes/libstemmer/libstemmer.oe.sig diff --git a/recipes/libstemmer/libstemmer.inc b/recipes/libstemmer/libstemmer.inc new file mode 100644 index 000000000..a3d31d01c --- /dev/null +++ b/recipes/libstemmer/libstemmer.inc @@ -0,0 +1,13 @@ +DESCRIPTION = "" +LICENSE = "" + +inherit make c + +SRC_URI = "http://snowball.tartarus.org/dist/libstemmer_c.tgz" +S = "${SRCDIR}/libstemmer_c/" +FILES_${PN} += "${libdir}" + +do_install() { + install -d ${D}/${libdir} + install -m 0644 ${S}/libstemmer.o ${D}/${libdir}/libstemmer.so +} diff --git a/recipes/libstemmer/libstemmer.oe b/recipes/libstemmer/libstemmer.oe new file mode 100644 index 000000000..f3fe166fa --- /dev/null +++ b/recipes/libstemmer/libstemmer.oe @@ -0,0 +1 @@ +require libstemmer.inc diff --git a/recipes/libstemmer/libstemmer.oe.sig b/recipes/libstemmer/libstemmer.oe.sig new file mode 100644 index 000000000..c14a3974d --- /dev/null +++ b/recipes/libstemmer/libstemmer.oe.sig @@ -0,0 +1 @@ +1ac6bb16e829e9f3a58f62c27047c26784975aa1 libstemmer_c.tgz From 432fb9a76263c549773c39422433b1f3370186bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Thu, 23 Jul 2015 09:15:53 +0200 Subject: [PATCH 07/17] libsnappy: new recipe --- recipes/libsnappy/libsnappy.inc | 11 +++++++++++ recipes/libsnappy/libsnappy_1.1.3.oe | 1 + recipes/libsnappy/libsnappy_1.1.3.oe.sig | 1 + 3 files changed, 13 insertions(+) create mode 100644 recipes/libsnappy/libsnappy.inc create mode 100644 recipes/libsnappy/libsnappy_1.1.3.oe create mode 100644 recipes/libsnappy/libsnappy_1.1.3.oe.sig diff --git a/recipes/libsnappy/libsnappy.inc b/recipes/libsnappy/libsnappy.inc new file mode 100644 index 000000000..d09faed76 --- /dev/null +++ b/recipes/libsnappy/libsnappy.inc @@ -0,0 +1,11 @@ +DESCRIPTION = "nappy is a compression/decompression library. It does not aim for maximum compression, or compatibility with any other compression library; instead, it aims for very high speeds and reasonable compression." +LICENSE = "BSD-3" + +inherit c++ autotools library + +SRC_URI = "https://github.com/google/snappy/releases/download/${PV}/snappy-${PV}.tar.gz" +S = "${SRCDIR}/snappy-${PV}" + +LIBRARY_VERSION = "1" +DEPENDS_${PN} = "libc libgcc-s libm libstdc++" +RDEPENDS_${PN} = "libc libgcc-s libm libstdc++" diff --git a/recipes/libsnappy/libsnappy_1.1.3.oe b/recipes/libsnappy/libsnappy_1.1.3.oe new file mode 100644 index 000000000..709a42a3c --- /dev/null +++ b/recipes/libsnappy/libsnappy_1.1.3.oe @@ -0,0 +1 @@ +require libsnappy.inc diff --git a/recipes/libsnappy/libsnappy_1.1.3.oe.sig b/recipes/libsnappy/libsnappy_1.1.3.oe.sig new file mode 100644 index 000000000..9f8cba88e --- /dev/null +++ b/recipes/libsnappy/libsnappy_1.1.3.oe.sig @@ -0,0 +1 @@ +63f7a3d2c865a6a39aca9bc5d3412a8b2d607bb4 snappy-1.1.3.tar.gz From d60413aee9e38173713ac32522a263bf19f34aca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Thu, 23 Jul 2015 09:33:38 +0200 Subject: [PATCH 08/17] libyaml-cpp: new recipe --- recipes/libyaml-cpp/libyaml-cpp.inc | 13 +++++++++++++ recipes/libyaml-cpp/libyaml-cpp_0.5.2.oe | 1 + recipes/libyaml-cpp/libyaml-cpp_0.5.2.oe.sig | 1 + 3 files changed, 15 insertions(+) create mode 100644 recipes/libyaml-cpp/libyaml-cpp.inc create mode 100644 recipes/libyaml-cpp/libyaml-cpp_0.5.2.oe create mode 100644 recipes/libyaml-cpp/libyaml-cpp_0.5.2.oe.sig diff --git a/recipes/libyaml-cpp/libyaml-cpp.inc b/recipes/libyaml-cpp/libyaml-cpp.inc new file mode 100644 index 000000000..970b7760b --- /dev/null +++ b/recipes/libyaml-cpp/libyaml-cpp.inc @@ -0,0 +1,13 @@ +DESCRIPTION = "yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec." +LICENSE = "MIT" + +inherit cmake c++ library + +DEPENDS = "libpthread boost-dev" +SRC_URI = "https://github.com/jbeder/yaml-cpp/archive/release-${PV}.tar.gz" +S = "${SRCDIR}/yaml-cpp-release-${PV}" +EXTRA_OE_CMAKE_CONF = "-DBUILD_SHARED_LIBS=ON" + +LIBRARY_VERSION = "0" +DEPENDS_${PN} = "libpthread libgcc-s libm libstdc++" +RDEPENDS_${PN} = "libpthread libgcc-s libm libstdc++" diff --git a/recipes/libyaml-cpp/libyaml-cpp_0.5.2.oe b/recipes/libyaml-cpp/libyaml-cpp_0.5.2.oe new file mode 100644 index 000000000..27580b5ac --- /dev/null +++ b/recipes/libyaml-cpp/libyaml-cpp_0.5.2.oe @@ -0,0 +1 @@ +require libyaml-cpp.inc diff --git a/recipes/libyaml-cpp/libyaml-cpp_0.5.2.oe.sig b/recipes/libyaml-cpp/libyaml-cpp_0.5.2.oe.sig new file mode 100644 index 000000000..d6ae416b0 --- /dev/null +++ b/recipes/libyaml-cpp/libyaml-cpp_0.5.2.oe.sig @@ -0,0 +1 @@ +61edcbb18b106dfc240f151998e233c03bdbf9f3 release-0.5.2.tar.gz From 7652fdf3edd6284336c4fe64d9fa9832f5cdf9e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Tue, 8 Sep 2015 10:14:49 +0200 Subject: [PATCH 09/17] npm: new recipe This recipe adds support for building npm for native and sdk. The sdk recipe adds a wrapper script (npm-cross) to make npm cross compile modules for the target. --- recipes/nodejs/npm.inc | 41 +++++++++++++++++++++++++++++++++ recipes/nodejs/npm_3.3.1.oe | 1 + recipes/nodejs/npm_3.3.1.oe.sig | 1 + 3 files changed, 43 insertions(+) create mode 100644 recipes/nodejs/npm.inc create mode 100644 recipes/nodejs/npm_3.3.1.oe create mode 100644 recipes/nodejs/npm_3.3.1.oe.sig diff --git a/recipes/nodejs/npm.inc b/recipes/nodejs/npm.inc new file mode 100644 index 000000000..fb3caa5db --- /dev/null +++ b/recipes/nodejs/npm.inc @@ -0,0 +1,41 @@ +DESCRIPTION = "JavaScript package manager" +HOMEPAGE = "https://www.npmjs.com/" +LICENSE = "Artistic-2.0" +RECIPE_TYPES = "native sdk-cross canadian-cross" + +inherit make + +DEPENDS = "native:nodejs" +SRC_URI = "https://github.com/npm/npm/archive/v${PV}.zip" +FILES_${PN} = "${bindir}/npm ${bindir}/npm-cross ${libdir}/node_modules" +RDEPENDS_${PN} = "sdk:nodejs target:nodejs-source" +RDEPENDS_${PN}:native = "nodejs" + +do_configure() { + ./configure --prefix=${D} +} + +do_install_wrapper_sdk = "do_install_wrapper" +do_install_wrapper_sdk:native = "" +do_install[postfuncs] += "${do_install_wrapper_sdk}" +do_install_wrapper () { + # Using real tabs below, since they are stripped by bash/cat/EOF + cat <<-'EOF' > ${D}/${bindir}/npm-cross + #!/bin/bash + + SCRIPT_SRC=$(dirname $BASH_SOURCE) + SCRIPT_DIR=$(readlink -fn $SCRIPT_SRC) + NODE_DIR=$SCRIPT_DIR/../${TARGET_ARCH}/sysroot/${target_datadir}/src/nodejs + + AR=${TARGET_PREFIX}ar \ + CC=${TARGET_PREFIX}cc \ + CXX=${TARGET_PREFIX}g++ \ + LINK=${TARGET_PREFIX}g++ \ + npm_config_arch=${TARGET_CPU} \ + npm_config_nodedir=$NODE_DIR \ + npm_config_userconfig=$SCRIPT_DIR/../.npmrc \ + npm_config_prefix=$SCRIPT_DIR/../ \ + npm $@ + EOF + chmod +x ${D}/${bindir}/npm-cross +} diff --git a/recipes/nodejs/npm_3.3.1.oe b/recipes/nodejs/npm_3.3.1.oe new file mode 100644 index 000000000..b0aa613b5 --- /dev/null +++ b/recipes/nodejs/npm_3.3.1.oe @@ -0,0 +1 @@ +require npm.inc diff --git a/recipes/nodejs/npm_3.3.1.oe.sig b/recipes/nodejs/npm_3.3.1.oe.sig new file mode 100644 index 000000000..a363ba59e --- /dev/null +++ b/recipes/nodejs/npm_3.3.1.oe.sig @@ -0,0 +1 @@ +51c8fea5401af7880fd575a55ef4a7d16ad621f8 v3.3.1.zip From 8f5f1a630c24f692c3133651154c5afcbb02f48b Mon Sep 17 00:00:00 2001 From: Martin Hundeboll Date: Thu, 8 Oct 2015 15:21:15 +0000 Subject: [PATCH 10/17] libv8: update source checksum Apparently, googlesource.com generates its tarballs from git on the fly, so the checksum changes every time. Use git src rev instead. --- recipes/libv8/libv8.inc | 2 +- recipes/libv8/libv8_3.25.30.oe | 1 + recipes/libv8/libv8_3.25.30.oe.sig | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/libv8/libv8.inc b/recipes/libv8/libv8.inc index b925e89d7..c65cf1111 100644 --- a/recipes/libv8/libv8.inc +++ b/recipes/libv8/libv8.inc @@ -6,7 +6,7 @@ RECIPE_TYPES = "machine native sdk" inherit make c++ library SRC_URI = " \ - https://chromium.googlesource.com/v8/v8.git/+archive/${PV}.tar.gz \ + git://chromium.googlesource.com/v8/v8;protocol=https;${SRC_REV} \ file://0001-avoid-thin-static-archives.patch \ " diff --git a/recipes/libv8/libv8_3.25.30.oe b/recipes/libv8/libv8_3.25.30.oe index 55118e35b..ef4b814c4 100644 --- a/recipes/libv8/libv8_3.25.30.oe +++ b/recipes/libv8/libv8_3.25.30.oe @@ -1,3 +1,4 @@ require libv8.inc +SRC_REV="tag=3.25.30" LIBRARY_VERSION = "3" diff --git a/recipes/libv8/libv8_3.25.30.oe.sig b/recipes/libv8/libv8_3.25.30.oe.sig index 83584ffb6..68da6193f 100644 --- a/recipes/libv8/libv8_3.25.30.oe.sig +++ b/recipes/libv8/libv8_3.25.30.oe.sig @@ -1 +1 @@ -3e0c7d38ee77837f33d39722cb8bc11381a67478 3.25.30.tar.gz +c85dc10954aa3556a00b09b6d28cf2ebfcf528d8 git://chromium.googlesource.com/v8/v8;protocol=https;tag=3.25.30 From 12f65b4918783953e70c26379df3ca84a2c22579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Thu, 8 Oct 2015 17:56:32 +0200 Subject: [PATCH 11/17] setuptools: Set pythonpath in do_install() In some cases setuputils fails to install with the following error: """ You are attempting to install a package to a directory that is not on PYTHONPATH and which Python does not read ".pth" files from. The installation directory you specified (via --install-dir, --prefix, or the distutils default setting) was: oe-lite/tmp/work/native/x86_64-build_unknown-linux-gnu/setuptools-18.0.1/install/lib/python/ and your PYTHONPATH environment variable currently contains: '' """ Fix this by adding the missing folder to PYTHONPATH --- recipes/setuptools/setuptools.inc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/setuptools/setuptools.inc b/recipes/setuptools/setuptools.inc index 1e34cb40b..1f3c1af12 100644 --- a/recipes/setuptools/setuptools.inc +++ b/recipes/setuptools/setuptools.inc @@ -10,5 +10,6 @@ do_compile() { } do_install() { - python setup.py install --home ${D} + install -d ${D}${libdir}/python + PYTHONPATH="${D}${libdir}/python" python setup.py install --home ${D} } From 11581476fdee84600edc96682734c7547d1958af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Fri, 9 Oct 2015 08:59:19 +0200 Subject: [PATCH 12/17] gyp: Fix python path to include installdir In some cases, python refuses to install to directories not included in $PYTHONPATH, so add the install to this. --- recipes/gyp/gyp_git.oe | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/gyp/gyp_git.oe b/recipes/gyp/gyp_git.oe index b189e4eb1..6279104e6 100644 --- a/recipes/gyp/gyp_git.oe +++ b/recipes/gyp/gyp_git.oe @@ -8,7 +8,7 @@ SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https;${SRC_REV S = "${SRCDIR}/gyp" FILES_${PN} += "/lib/python" -PYTHON_PATH = "${BUILD_SYSROOT}/lib/python" +PYTHON_PATH = "${BUILD_SYSROOT}/lib/python:${D}${libdir}/python" do_compile() { export PYTHONPATH=${PYTHON_PATH} @@ -16,6 +16,7 @@ do_compile() { } do_install() { + install -d ${D}${libdir}/python export PYTHONPATH=${PYTHON_PATH} python setup.py install --home ${D} } From 2aa4aa5ba401a282f8169fc2b7b28dfed95b9444 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Mon, 12 Oct 2015 16:00:43 +0200 Subject: [PATCH 13/17] libv8: Use correct source dir Commit 19788ef ('libv8: update source checksum') changed the libv8 recipe to use git src uri, which changed the source folder. Update the S variable accordingly. --- recipes/libv8/libv8.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/recipes/libv8/libv8.inc b/recipes/libv8/libv8.inc index c65cf1111..0d65ec634 100644 --- a/recipes/libv8/libv8.inc +++ b/recipes/libv8/libv8.inc @@ -10,6 +10,7 @@ SRC_URI = " \ file://0001-avoid-thin-static-archives.patch \ " +S = "${SRCDIR}/v8" DEPENDS_${PN} = "libpthread libdl librt libgcc libm libstdc++" RDEPENDS_${PN} = "libpthread libdl librt libgcc libm libstdc++" From 95751ee9c335ee093a4cbaa8453a8b941591e2b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Tue, 13 Oct 2015 15:24:36 +0200 Subject: [PATCH 14/17] c-ares: new recipe Add a recipe for the c-ares library used for async dns lookups. This is needed to build nodejs, and thus we add a nodejs patch to make it compatible. --- ...eps-provide-TXT-chunk-info-in-c-ares.patch | 62 +++++++++++++++++++ recipes/c-ares/c-ares.inc | 13 ++++ recipes/c-ares/c-ares_1.10.0.oe | 1 + recipes/c-ares/c-ares_1.10.0.oe.sig | 1 + 4 files changed, 77 insertions(+) create mode 100644 recipes/c-ares/c-ares-1.10.0/0001-deps-provide-TXT-chunk-info-in-c-ares.patch create mode 100644 recipes/c-ares/c-ares.inc create mode 100644 recipes/c-ares/c-ares_1.10.0.oe create mode 100644 recipes/c-ares/c-ares_1.10.0.oe.sig diff --git a/recipes/c-ares/c-ares-1.10.0/0001-deps-provide-TXT-chunk-info-in-c-ares.patch b/recipes/c-ares/c-ares-1.10.0/0001-deps-provide-TXT-chunk-info-in-c-ares.patch new file mode 100644 index 000000000..7e0cbb383 --- /dev/null +++ b/recipes/c-ares/c-ares-1.10.0/0001-deps-provide-TXT-chunk-info-in-c-ares.patch @@ -0,0 +1,62 @@ +From a60a9b0dbd064cd70de9400ad47421c19d29b021 Mon Sep 17 00:00:00 2001 +From: Fedor Indutny +Date: Fri, 28 Mar 2014 00:09:20 +0400 +Subject: [PATCH] deps: provide TXT chunk info in c-ares + +Provide more information in `ares_txt_reply` to coalesce chunks from the +same record into one string. + +upstream-status: unappropriate - needed for nodejs only + +--- + ares.h | 2 ++ + ares_parse_txt_reply.c | 5 +++-- + 4 files changed, 22 insertions(+), 6 deletions(-) + +diff --git a/ares.h b/ares.h +index 3d0f9cf..3091064 100644 +--- a/ares.h ++++ b/ares.h +@@ -520,6 +520,8 @@ struct ares_txt_reply { + struct ares_txt_reply *next; + unsigned char *txt; + size_t length; /* length excludes null termination */ ++ unsigned char record_start; /* 1 - if start of new record ++ * 0 - if a chunk in the same record */ + }; + + struct ares_naptr_reply { +diff --git a/ares_parse_txt_reply.c b/ares_parse_txt_reply.c +index 981db4c..dabf73c 100644 +--- a/ares_parse_txt_reply.c ++++ b/ares_parse_txt_reply.c +@@ -133,8 +133,6 @@ ares_parse_txt_reply (const unsigned char *abuf, int alen, + break; + } + +- ++strptr; +- + /* Allocate storage for this TXT answer appending it to the list */ + txt_curr = ares_malloc_data(ARES_DATATYPE_TXT_REPLY); + if (!txt_curr) +@@ -152,6 +150,7 @@ ares_parse_txt_reply (const unsigned char *abuf, int alen, + } + txt_last = txt_curr; + ++ txt_curr->record_start = strptr == aptr; + txt_curr->length = substr_len; + txt_curr->txt = malloc (substr_len + 1/* Including null byte */); + if (txt_curr->txt == NULL) +@@ -159,6 +158,8 @@ ares_parse_txt_reply (const unsigned char *abuf, int alen, + status = ARES_ENOMEM; + break; + } ++ ++ ++strptr; + memcpy ((char *) txt_curr->txt, strptr, substr_len); + + /* Make sure we NULL-terminate */ + +-- +2.6.1 + diff --git a/recipes/c-ares/c-ares.inc b/recipes/c-ares/c-ares.inc new file mode 100644 index 000000000..879b712a7 --- /dev/null +++ b/recipes/c-ares/c-ares.inc @@ -0,0 +1,13 @@ +DESCRIPTION = "c-ares is a C library for asynchronous DNS requests (including name resolves)" +LICENSE = "MIT" +RECIPE_TYPES = "machine sdk native" + +inherit c autotools library + +SRC_URI = "http://c-ares.haxx.se/download/c-ares-${PV}.tar.gz" +SRC_URI:>HOST_LIBC_mingw = " file://0001-deps-provide-TXT-chunk-info-in-c-ares.patch " + +LIBRARY_NAME="libcares" +LIBRARY_VERSION = "2" +DEPENDS_${PN} = "libc" +RDEPENDS_${PN} = "libc" diff --git a/recipes/c-ares/c-ares_1.10.0.oe b/recipes/c-ares/c-ares_1.10.0.oe new file mode 100644 index 000000000..bd5441968 --- /dev/null +++ b/recipes/c-ares/c-ares_1.10.0.oe @@ -0,0 +1 @@ +require ${PN}.inc diff --git a/recipes/c-ares/c-ares_1.10.0.oe.sig b/recipes/c-ares/c-ares_1.10.0.oe.sig new file mode 100644 index 000000000..1c1bf3aea --- /dev/null +++ b/recipes/c-ares/c-ares_1.10.0.oe.sig @@ -0,0 +1 @@ +e44e6575d5af99cb3a38461486e1ee8b49810eb5 c-ares-1.10.0.tar.gz From 16a49264953c6b46f62e07d6829164f2fc481227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Tue, 13 Oct 2015 15:25:39 +0200 Subject: [PATCH 15/17] libuv: new recipe Add libuv recipe used to build/run nodejs. --- recipes/libuv/libuv.inc | 17 +++++++++++++++++ recipes/libuv/libuv_1.6.1.oe | 1 + recipes/libuv/libuv_1.6.1.oe.sig | 1 + 3 files changed, 19 insertions(+) create mode 100644 recipes/libuv/libuv.inc create mode 100644 recipes/libuv/libuv_1.6.1.oe create mode 100644 recipes/libuv/libuv_1.6.1.oe.sig diff --git a/recipes/libuv/libuv.inc b/recipes/libuv/libuv.inc new file mode 100644 index 000000000..3a1c56cef --- /dev/null +++ b/recipes/libuv/libuv.inc @@ -0,0 +1,17 @@ +DESCRIPTION = "libuv is a multi-platform support library with a focus on asynchronous I/O." +LICENSE = "MIT BSD Artistic-2.0" +RECIPE_TYPES = "machine sdk native" + +inherit c autotools library + +SRC_URI = "http://dist.libuv.org/dist/v${PV}/libuv-v${PV}.tar.gz" +S = "${SRCDIR}/${PN}-v${PV}" + +LIBRARY_VERSION = "11" +DEPENDS_${PN} = "libc" +RDEPENDS_${PN} = "libc" + +do_configure[prefuncs] += "do_configure_autogen" +do_configure_autogen() { + sh autogen.sh +} diff --git a/recipes/libuv/libuv_1.6.1.oe b/recipes/libuv/libuv_1.6.1.oe new file mode 100644 index 000000000..bd5441968 --- /dev/null +++ b/recipes/libuv/libuv_1.6.1.oe @@ -0,0 +1 @@ +require ${PN}.inc diff --git a/recipes/libuv/libuv_1.6.1.oe.sig b/recipes/libuv/libuv_1.6.1.oe.sig new file mode 100644 index 000000000..d556d96f5 --- /dev/null +++ b/recipes/libuv/libuv_1.6.1.oe.sig @@ -0,0 +1 @@ +6f3949f1136203d1de8de74fe157eead44821b82 libuv-v1.6.1.tar.gz From 8e926a8a35465364a63b210f4133a0c8f0479daf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Tue, 13 Oct 2015 21:06:56 +0200 Subject: [PATCH 16/17] c-ares: patch for all targets and fix CFLAGS The patch to make nodejs happy about record_start member of tx-structs is required for all targets, so remove the mingw specifier. Explicitly set CFLAGS to avoid failing configure due to U_FORTIFY_SOURCE not being specified in CPPFLAGS only. --- recipes/c-ares/c-ares.inc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/c-ares/c-ares.inc b/recipes/c-ares/c-ares.inc index 879b712a7..d81ca4687 100644 --- a/recipes/c-ares/c-ares.inc +++ b/recipes/c-ares/c-ares.inc @@ -4,10 +4,12 @@ RECIPE_TYPES = "machine sdk native" inherit c autotools library -SRC_URI = "http://c-ares.haxx.se/download/c-ares-${PV}.tar.gz" -SRC_URI:>HOST_LIBC_mingw = " file://0001-deps-provide-TXT-chunk-info-in-c-ares.patch " +SRC_URI = "http://c-ares.haxx.se/download/c-ares-${PV}.tar.gz" +SRC_URI += "file://0001-deps-provide-TXT-chunk-info-in-c-ares.patch " LIBRARY_NAME="libcares" LIBRARY_VERSION = "2" DEPENDS_${PN} = "libc" RDEPENDS_${PN} = "libc" + +BUILD_CFLAGS = "${BUILD_CFLAGS_OPT}" From d586501e3e9bcbb2422e0ca488096c4b0ed3d9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Tue, 13 Oct 2015 21:09:10 +0200 Subject: [PATCH 17/17] libuv: fix libtoolize and depend on libdl for non-mingw libtoolize fails for native/machine due to $pkgltdldir being empty. Fix this by exporting _lt_pkgdatadir to point at ${BUILD_SYSROOT}/share/libtool libuv uses libdl if present, which is needed for non-mingw builds of nodejs, so add a DEPENDS that depends on not being mingw. --- recipes/libuv/libuv.inc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/libuv/libuv.inc b/recipes/libuv/libuv.inc index 3a1c56cef..fe543c483 100644 --- a/recipes/libuv/libuv.inc +++ b/recipes/libuv/libuv.inc @@ -8,10 +8,17 @@ SRC_URI = "http://dist.libuv.org/dist/v${PV}/libuv-v${PV}.tar.gz" S = "${SRCDIR}/${PN}-v${PV}" LIBRARY_VERSION = "11" -DEPENDS_${PN} = "libc" -RDEPENDS_${PN} = "libc" +DEPENDS_HOST_OS = "libdl librt" +DEPENDS_HOST_OS:HOST_LIBC_mingw = "" +DEPENDS = "${DEPENDS_HOST_OS}" +DEPENDS_${PN} = "libc ${DEPENDS_HOST_OS}" +RDEPENDS_${PN} = "libc ${DEPENDS_HOST_OS}" + +EXPORT_LIBTOOLIZE = "" +EXPORT_LIBTOOLIZE:native = "export _lt_pkgdatadir=${BUILD_SYSROOT}/share/libtool" do_configure[prefuncs] += "do_configure_autogen" do_configure_autogen() { + ${EXPORT_LIBTOOLIZE} sh autogen.sh }