diff options
author | Igor Pashev <igor.pashev@nexenta.com> | 2012-12-19 13:02:54 +0400 |
---|---|---|
committer | Igor Pashev <igor.pashev@nexenta.com> | 2012-12-19 13:05:12 +0400 |
commit | 3e567218b60d7f885e769e1a2a07d84d38f11c13 (patch) | |
tree | f43668e026c492f304f4c827fc4b567ca85b1963 /examples/nodejs | |
parent | fdcf880b3c8c67f08453f553474a551e9707d29d (diff) | |
download | cibs-3e567218b60d7f885e769e1a2a07d84d38f11c13.tar.gz |
Update examples
Diffstat (limited to 'examples/nodejs')
-rw-r--r-- | examples/nodejs/Makefile | 45 | ||||
-rw-r--r-- | examples/nodejs/developer-nodejs.p5m | 110 | ||||
-rw-r--r-- | examples/nodejs/patches/01-shared-c-ares.patch | 288 | ||||
-rw-r--r-- | examples/nodejs/patches/02-rename-node-to-nodejs.patch | 34 | ||||
-rw-r--r-- | examples/nodejs/patches/03-waf.patch | 16 | ||||
-rw-r--r-- | examples/nodejs/patches/04-lib-path.patch | 24 | ||||
-rw-r--r-- | examples/nodejs/runtime-nodejs.p5m | 13 |
7 files changed, 530 insertions, 0 deletions
diff --git a/examples/nodejs/Makefile b/examples/nodejs/Makefile new file mode 100644 index 0000000..bf478c7 --- /dev/null +++ b/examples/nodejs/Makefile @@ -0,0 +1,45 @@ +include /usr/share/cibs/rules/ips.mk +include /usr/share/cibs/rules/archive.mk +include /usr/share/cibs/rules/patch.mk +include /usr/share/cibs/rules/copy.mk +include /usr/share/cibs/rules/64.mk +# Not autotools, but similar: +include /usr/share/cibs/rules/autotools.mk + +# Must run from the current directory: +configure := ./configure + +# Flock wrapper even does not return error on failure: +export LINK = $(CXX) + +name := nodejs +version := 0.8.15 +home := http://nodejs.org +archive := node-v$(version).tar.gz +download := http://nodejs.org/dist/v$(version)/$(archive) +checksum := \ + md5:6cb31180b07475db103e694f65e8bb9b \ + sha1:a7874cde1a87497992f1f8ea0fdaa760f617a94f \ + sha256:1758639c6df3e081fe26585472d0f1961c5703b44ba6c57ecdf66a4c015792b1 \ + size:11867033 + +summary := event-based server-side javascript engine +license := BSD +license-file := LICENSE + +build-depends += \ + library/libv8 \ + library/c-ares \ + library/libev \ + library/openssl + +# Node.js configure is a autotools lookalike confuserator: +configure-options := \ + --dest-os=solaris \ + --prefix=/usr \ + --without-npm \ + --shared-v8 \ + --shared-zlib \ + --shared-openssl \ + --no-ssl2 + diff --git a/examples/nodejs/developer-nodejs.p5m b/examples/nodejs/developer-nodejs.p5m new file mode 100644 index 0000000..58a22cc --- /dev/null +++ b/examples/nodejs/developer-nodejs.p5m @@ -0,0 +1,110 @@ +set name=pkg.fmri value=pkg:/developer/$(name)@$(ips-version) +set name=pkg.summary value="$(summary), developer files" +set name=pkg.description value="Contain Node.js header and node-waf utility. \ +Install this package if you want to write Node.js bindings" +set name=info.upstream-url value="$(home)" +set name=info.source-url value="$(download)" + +license $(license-file) license="$(license)" + +# FIXME: Versions ? +depend fmri=pkg:/library/libv8 type=require +depend fmri=pkg:/library/c-ares type=require +depend fmri=pkg:/library/libev type=require +depend fmri=pkg:/library/openssl type=require + +depend fmri=pkg:/runtime/nodejs@$(ips-version) type=require +depend fmri=pkg:/runtime/nodejs@$(ips-version) type=incorporate + + +# Move headers into usr/include/nodejs: +<transform dir -> edit path /node /nodejs > +<transform file path=(.+/include)/node/(.+) -> \ + emit file %<1>/node/%<2> path=%<1>/nodejs/%<2> > +<transform file path=(.+/include)/node/(.+) -> \ + drop > + +dir path=usr/include +dir path=usr/include/node +dir path=usr/include/node/uv-private +file path=usr/include/node/uv-private/uv-unix.h +file path=usr/include/node/uv-private/eio.h +file path=usr/include/node/uv-private/ngx-queue.h +file path=usr/include/node/uv-private/ev.h +file path=usr/include/node/uv-private/uv-win.h +file path=usr/include/node/uv-private/tree.h +file path=usr/include/node/eio-emul.h +file path=usr/include/node/node.h +file path=usr/include/node/node_buffer.h +file path=usr/include/node/ev-emul.h +file path=usr/include/node/node_object_wrap.h +file path=usr/include/node/node_version.h +file path=usr/include/node/uv.h + +# Move WAF into usr/share/nodejs: +<transform dir -> edit path /lib/node/ /share/nodejs/ > +<transform file path=(.+/lib)/node/(.+) -> \ + emit file %<1>/node/%<2> path=usr/share/nodejs/%<2> > +<transform file path=(.+/lib)/node/(.+) -> \ + drop > + +<transform dir file path=.+/wafadmin/.+ -> \ + default facet.devel true> + +dir path=usr/lib/node/wafadmin +dir path=usr/lib/node/wafadmin/Tools +file path=usr/lib/node/wafadmin/pproc.py +file path=usr/lib/node/wafadmin/py3kfixes.py +file path=usr/lib/node/wafadmin/TaskGen.py +file path=usr/lib/node/wafadmin/__init__.py +file path=usr/lib/node/wafadmin/Logs.py +file path=usr/lib/node/wafadmin/Task.py +file path=usr/lib/node/wafadmin/Configure.py +file path=usr/lib/node/wafadmin/Build.py +file path=usr/lib/node/wafadmin/Scripting.py +file path=usr/lib/node/wafadmin/Utils.py +file path=usr/lib/node/wafadmin/ansiterm.py +file path=usr/lib/node/wafadmin/Runner.py +file path=usr/lib/node/wafadmin/Tools/compiler_d.py +file path=usr/lib/node/wafadmin/Tools/winres.py +file path=usr/lib/node/wafadmin/Tools/compiler_cc.py +file path=usr/lib/node/wafadmin/Tools/nasm.py +file path=usr/lib/node/wafadmin/Tools/xlcxx.py +file path=usr/lib/node/wafadmin/Tools/preproc.py +file path=usr/lib/node/wafadmin/Tools/icpc.py +file path=usr/lib/node/wafadmin/Tools/gdc.py +file path=usr/lib/node/wafadmin/Tools/unittestw.py +file path=usr/lib/node/wafadmin/Tools/gcc.py +file path=usr/lib/node/wafadmin/Tools/osx.py +file path=usr/lib/node/wafadmin/Tools/node_addon.py +file path=usr/lib/node/wafadmin/Tools/cc.py +file path=usr/lib/node/wafadmin/Tools/d.py +file path=usr/lib/node/wafadmin/Tools/config_c.py +file path=usr/lib/node/wafadmin/Tools/ar.py +file path=usr/lib/node/wafadmin/Tools/ccroot.py +file path=usr/lib/node/wafadmin/Tools/suncc.py +file path=usr/lib/node/wafadmin/Tools/intltool.py +file path=usr/lib/node/wafadmin/Tools/gas.py +file path=usr/lib/node/wafadmin/Tools/compiler_cxx.py +file path=usr/lib/node/wafadmin/Tools/icc.py +file path=usr/lib/node/wafadmin/Tools/dmd.py +file path=usr/lib/node/wafadmin/Tools/libtool.py +file path=usr/lib/node/wafadmin/Tools/__init__.py +file path=usr/lib/node/wafadmin/Tools/python.py +file path=usr/lib/node/wafadmin/Tools/xlc.py +file path=usr/lib/node/wafadmin/Tools/misc.py +file path=usr/lib/node/wafadmin/Tools/gxx.py +file path=usr/lib/node/wafadmin/Tools/suncxx.py +file path=usr/lib/node/wafadmin/Tools/gob2.py +file path=usr/lib/node/wafadmin/Tools/cxx.py +file path=usr/lib/node/wafadmin/Tools/gnu_dirs.py +file path=usr/lib/node/wafadmin/Node.py +file path=usr/lib/node/wafadmin/Environment.py +file path=usr/lib/node/wafadmin/Options.py +file path=usr/lib/node/wafadmin/Constants.py + +# Do not bother with python version: +file path=usr/bin/node-waf \ + pkg.depend.bypass-generate=.* \ + facet.devel=true + diff --git a/examples/nodejs/patches/01-shared-c-ares.patch b/examples/nodejs/patches/01-shared-c-ares.patch new file mode 100644 index 0000000..220f2c7 --- /dev/null +++ b/examples/nodejs/patches/01-shared-c-ares.patch @@ -0,0 +1,288 @@ +diff -dubr source/configure cares/configure +--- source/configure 2012-10-26 00:49:32.000000000 +0400 ++++ cares/configure 2012-11-01 21:18:15.766658414 +0400 +@@ -460,6 +460,8 @@ + 'cflags': [], + } + ++output['libraries'] += ['-lcares'] ++ + configure_node(output) + configure_libz(output) + configure_v8(output) +diff -dubr source/deps/uv/config-unix.mk cares/deps/uv/config-unix.mk +--- source/deps/uv/config-unix.mk 2012-10-26 00:49:32.000000000 +0400 ++++ cares/deps/uv/config-unix.mk 2012-11-01 21:24:35.522262825 +0400 +@@ -47,7 +47,7 @@ + ifeq (SunOS,$(uname_S)) + EV_CONFIG=config_sunos.h + EIO_CONFIG=config_sunos.h +-CPPFLAGS += -Isrc/ares/config_sunos -D__EXTENSIONS__ -D_XOPEN_SOURCE=500 ++CPPFLAGS += -D__EXTENSIONS__ -D_XOPEN_SOURCE=500 + LINKFLAGS+=-lsocket -lnsl -lkstat + OBJS += src/unix/sunos.o + endif +@@ -65,7 +65,6 @@ + EV_CONFIG=config_linux.h + EIO_CONFIG=config_linux.h + CSTDFLAG += -D_GNU_SOURCE +-CPPFLAGS += -Isrc/ares/config_linux + LINKFLAGS+=-ldl -lrt + OBJS += src/unix/linux/linux-core.o \ + src/unix/linux/inotify.o \ +@@ -75,7 +74,6 @@ + ifeq (FreeBSD,$(uname_S)) + EV_CONFIG=config_freebsd.h + EIO_CONFIG=config_freebsd.h +-CPPFLAGS += -Isrc/ares/config_freebsd + LINKFLAGS+=-lkvm + OBJS += src/unix/freebsd.o + OBJS += src/unix/kqueue.o +@@ -84,7 +82,6 @@ + ifeq (DragonFly,$(uname_S)) + EV_CONFIG=config_freebsd.h + EIO_CONFIG=config_freebsd.h +-CPPFLAGS += -Isrc/ares/config_freebsd + LINKFLAGS+= + OBJS += src/unix/freebsd.o + OBJS += src/unix/kqueue.o +@@ -93,7 +90,6 @@ + ifeq (NetBSD,$(uname_S)) + EV_CONFIG=config_netbsd.h + EIO_CONFIG=config_netbsd.h +-CPPFLAGS += -Isrc/ares/config_netbsd + LINKFLAGS+= + OBJS += src/unix/netbsd.o + OBJS += src/unix/kqueue.o +@@ -102,7 +98,6 @@ + ifeq (OpenBSD,$(uname_S)) + EV_CONFIG=config_openbsd.h + EIO_CONFIG=config_openbsd.h +-CPPFLAGS += -Isrc/ares/config_openbsd + LINKFLAGS+=-lkvm + OBJS += src/unix/openbsd.o + OBJS += src/unix/kqueue.o +@@ -113,7 +108,6 @@ + EIO_CONFIG=config_cygwin.h + # We drop the --std=c89, it hides CLOCK_MONOTONIC on cygwin + CSTDFLAG = -D_GNU_SOURCE +-CPPFLAGS += -Isrc/ares/config_cygwin + LINKFLAGS+= + OBJS += src/unix/cygwin.o + endif +@@ -131,7 +125,7 @@ + RUNNER_LIBS= + RUNNER_SRC=test/runner-unix.c + +-uv.a: $(OBJS) src/cares.o src/fs-poll.o src/uv-common.o src/unix/ev/ev.o src/unix/uv-eio.o src/unix/eio/eio.o $(CARES_OBJS) ++uv.a: $(OBJS) src/cares.o src/fs-poll.o src/uv-common.o src/unix/ev/ev.o src/unix/uv-eio.o src/unix/eio/eio.o + $(AR) rcs uv.a $^ + + src/%.o: src/%.c include/uv.h include/uv-private/uv-unix.h +@@ -157,7 +151,6 @@ + + + clean-platform: +- -rm -f src/ares/*.o + -rm -f src/unix/*.o + -rm -f src/unix/ev/*.o + -rm -f src/unix/eio/*.o +@@ -165,7 +158,6 @@ + -rm -rf test/run-tests.dSYM run-benchmarks.dSYM + + distclean-platform: +- -rm -f src/ares/*.o + -rm -f src/unix/*.o + -rm -f src/unix/ev/*.o + -rm -f src/unix/eio/*.o +diff -dubr source/deps/uv/include/uv.h cares/deps/uv/include/uv.h +--- source/deps/uv/include/uv.h 2012-10-26 00:49:32.000000000 +0400 ++++ cares/deps/uv/include/uv.h 2012-11-01 21:17:00.331361102 +0400 +@@ -55,7 +55,7 @@ + #include <stdint.h> /* int64_t */ + #include <sys/types.h> /* size_t */ + +-#include "ares.h" ++#include <ares.h> + + #if defined(__unix__) || defined(__POSIX__) || defined(__APPLE__) + # include "uv-private/uv-unix.h" +diff -dubr source/deps/uv/Makefile cares/deps/uv/Makefile +--- source/deps/uv/Makefile 2012-10-26 00:49:32.000000000 +0400 ++++ cares/deps/uv/Makefile 2012-11-01 21:19:24.730021729 +0400 +@@ -26,51 +26,6 @@ + + CPPFLAGS += -Iinclude -Iinclude/uv-private + +-CARES_OBJS = +-CARES_OBJS += src/ares/ares__close_sockets.o +-CARES_OBJS += src/ares/ares__get_hostent.o +-CARES_OBJS += src/ares/ares__read_line.o +-CARES_OBJS += src/ares/ares__timeval.o +-CARES_OBJS += src/ares/ares_cancel.o +-CARES_OBJS += src/ares/ares_data.o +-CARES_OBJS += src/ares/ares_destroy.o +-CARES_OBJS += src/ares/ares_expand_name.o +-CARES_OBJS += src/ares/ares_expand_string.o +-CARES_OBJS += src/ares/ares_fds.o +-CARES_OBJS += src/ares/ares_free_hostent.o +-CARES_OBJS += src/ares/ares_free_string.o +-CARES_OBJS += src/ares/ares_gethostbyaddr.o +-CARES_OBJS += src/ares/ares_gethostbyname.o +-CARES_OBJS += src/ares/ares_getnameinfo.o +-CARES_OBJS += src/ares/ares_getopt.o +-CARES_OBJS += src/ares/ares_getsock.o +-CARES_OBJS += src/ares/ares_init.o +-CARES_OBJS += src/ares/ares_library_init.o +-CARES_OBJS += src/ares/ares_llist.o +-CARES_OBJS += src/ares/ares_mkquery.o +-CARES_OBJS += src/ares/ares_nowarn.o +-CARES_OBJS += src/ares/ares_options.o +-CARES_OBJS += src/ares/ares_parse_a_reply.o +-CARES_OBJS += src/ares/ares_parse_aaaa_reply.o +-CARES_OBJS += src/ares/ares_parse_mx_reply.o +-CARES_OBJS += src/ares/ares_parse_ns_reply.o +-CARES_OBJS += src/ares/ares_parse_ptr_reply.o +-CARES_OBJS += src/ares/ares_parse_srv_reply.o +-CARES_OBJS += src/ares/ares_parse_txt_reply.o +-CARES_OBJS += src/ares/ares_process.o +-CARES_OBJS += src/ares/ares_query.o +-CARES_OBJS += src/ares/ares_search.o +-CARES_OBJS += src/ares/ares_send.o +-CARES_OBJS += src/ares/ares_strcasecmp.o +-CARES_OBJS += src/ares/ares_strdup.o +-CARES_OBJS += src/ares/ares_strerror.o +-CARES_OBJS += src/ares/ares_timeout.o +-CARES_OBJS += src/ares/ares_version.o +-CARES_OBJS += src/ares/ares_writev.o +-CARES_OBJS += src/ares/bitncmp.o +-CARES_OBJS += src/ares/inet_net_pton.o +-CARES_OBJS += src/ares/inet_ntop.o +- + ifneq (,$(findstring MINGW,$(uname_S))) + include config-mingw.mk + else +@@ -82,9 +37,6 @@ + + all: uv.a + +-$(CARES_OBJS): %.o: %.c +- $(CC) -o $*.o -c $(CFLAGS) $(CPPFLAGS) $< -DHAVE_CONFIG_H +- + test/run-tests$(E): test/*.h test/run-tests.c $(RUNNER_SRC) test/runner-unix.c $(TESTS) uv.a + $(CC) $(CPPFLAGS) $(RUNNER_CFLAGS) -o test/run-tests test/run-tests.c \ + test/runner.c $(RUNNER_SRC) $(TESTS) uv.a $(RUNNER_LIBS) $(RUNNER_LINKFLAGS) +diff -dubr source/deps/uv/src/uv-common.c cares/deps/uv/src/uv-common.c +--- source/deps/uv/src/uv-common.c 2012-10-26 00:49:32.000000000 +0400 ++++ cares/deps/uv/src/uv-common.c 2012-11-01 21:17:00.332151637 +0400 +@@ -28,10 +28,8 @@ + #include <stdlib.h> /* malloc */ + #include <string.h> /* memset */ + +-/* use inet_pton from c-ares if necessary */ +-#include "ares_config.h" +-#include "ares/inet_net_pton.h" +-#include "ares/inet_ntop.h" ++#include <ares.h> ++#include <arpa/inet.h> + + #define XX(uc, lc) case UV_##uc: return sizeof(uv_##lc##_t); + +@@ -182,20 +180,20 @@ + + addr.sin6_family = AF_INET6; + addr.sin6_port = htons(port); +- ares_inet_pton(AF_INET6, ip, &addr.sin6_addr); ++ inet_pton(AF_INET6, ip, &addr.sin6_addr); + + return addr; + } + + + int uv_ip4_name(struct sockaddr_in* src, char* dst, size_t size) { +- const char* d = ares_inet_ntop(AF_INET, &src->sin_addr, dst, size); ++ const char* d = inet_ntop(AF_INET, &src->sin_addr, dst, size); + return d != dst; + } + + + int uv_ip6_name(struct sockaddr_in6* src, char* dst, size_t size) { +- const char* d = ares_inet_ntop(AF_INET6, &src->sin6_addr, dst, size); ++ const char* d = inet_ntop(AF_INET6, &src->sin6_addr, dst, size); + return d != dst; + } + +diff -dubr source/deps/uv/uv.gyp cares/deps/uv/uv.gyp +--- source/deps/uv/uv.gyp 2012-10-26 00:49:32.000000000 +0400 ++++ cares/deps/uv/uv.gyp 2012-11-01 21:17:00.332535345 +0400 +@@ -53,70 +53,6 @@ + 'src/fs-poll.c', + 'src/uv-common.c', + 'src/uv-common.h', +- 'src/ares/ares_cancel.c', +- 'src/ares/ares__close_sockets.c', +- 'src/ares/ares_data.c', +- 'src/ares/ares_data.h', +- 'src/ares/ares_destroy.c', +- 'src/ares/ares_dns.h', +- 'src/ares/ares_expand_name.c', +- 'src/ares/ares_expand_string.c', +- 'src/ares/ares_fds.c', +- 'src/ares/ares_free_hostent.c', +- 'src/ares/ares_free_string.c', +- 'src/ares/ares_getenv.h', +- 'src/ares/ares_gethostbyaddr.c', +- 'src/ares/ares_gethostbyname.c', +- 'src/ares/ares__get_hostent.c', +- 'src/ares/ares_getnameinfo.c', +- 'src/ares/ares_getopt.c', +- 'src/ares/ares_getopt.h', +- 'src/ares/ares_getsock.c', +- 'src/ares/ares_init.c', +- 'src/ares/ares_ipv6.h', +- 'src/ares/ares_library_init.c', +- 'src/ares/ares_library_init.h', +- 'src/ares/ares_llist.c', +- 'src/ares/ares_llist.h', +- 'src/ares/ares_mkquery.c', +- 'src/ares/ares_nowarn.c', +- 'src/ares/ares_nowarn.h', +- 'src/ares/ares_options.c', +- 'src/ares/ares_parse_aaaa_reply.c', +- 'src/ares/ares_parse_a_reply.c', +- 'src/ares/ares_parse_mx_reply.c', +- 'src/ares/ares_parse_ns_reply.c', +- 'src/ares/ares_parse_ptr_reply.c', +- 'src/ares/ares_parse_srv_reply.c', +- 'src/ares/ares_parse_txt_reply.c', +- 'src/ares/ares_platform.h', +- 'src/ares/ares_private.h', +- 'src/ares/ares_process.c', +- 'src/ares/ares_query.c', +- 'src/ares/ares__read_line.c', +- 'src/ares/ares_rules.h', +- 'src/ares/ares_search.c', +- 'src/ares/ares_send.c', +- 'src/ares/ares_setup.h', +- 'src/ares/ares_strcasecmp.c', +- 'src/ares/ares_strcasecmp.h', +- 'src/ares/ares_strdup.c', +- 'src/ares/ares_strdup.h', +- 'src/ares/ares_strerror.c', +- 'src/ares/ares_timeout.c', +- 'src/ares/ares__timeval.c', +- 'src/ares/ares_version.c', +- 'src/ares/ares_writev.c', +- 'src/ares/ares_writev.h', +- 'src/ares/bitncmp.c', +- 'src/ares/bitncmp.h', +- 'src/ares/inet_net_pton.c', +- 'src/ares/inet_net_pton.h', +- 'src/ares/inet_ntop.c', +- 'src/ares/inet_ntop.h', +- 'src/ares/nameser.h', +- 'src/ares/setup_once.h', +- 'src/ares/windows_port.c', + ], + 'conditions': [ + [ 'OS=="win"', { diff --git a/examples/nodejs/patches/02-rename-node-to-nodejs.patch b/examples/nodejs/patches/02-rename-node-to-nodejs.patch new file mode 100644 index 0000000..8e6c9e5 --- /dev/null +++ b/examples/nodejs/patches/02-rename-node-to-nodejs.patch @@ -0,0 +1,34 @@ +diff -dubr source/doc/node.1 rename/doc/node.1 +--- source/doc/node.1 2012-10-26 00:49:56.000000000 +0400 ++++ rename/doc/node.1 2012-11-01 21:57:48.271896703 +0400 +@@ -2,12 +2,12 @@ + + + .SH "NAME" +-node \- Server-side JavaScript ++nodejs \- Server-side JavaScript + + .SH SYNOPSIS + + +-.B node ++.B nodejs + [ + .B \-v + ] +diff -dubr source/tools/wafadmin/Tools/node_addon.py rename/tools/wafadmin/Tools/node_addon.py +--- source/tools/wafadmin/Tools/node_addon.py 2012-10-26 00:49:32.000000000 +0400 ++++ rename/tools/wafadmin/Tools/node_addon.py 2012-11-01 21:59:05.441880615 +0400 +@@ -26,10 +26,10 @@ + conf.env['PREFIX_NODE'] = get_prefix() + prefix = conf.env['PREFIX_NODE'] + lib = join(prefix, 'lib') +- nodebin = join(prefix, 'bin', 'node') ++ nodebin = join(prefix, 'bin', 'nodejs') + + conf.env['LIBPATH_NODE'] = lib +- conf.env['CPPPATH_NODE'] = join(prefix, 'include', 'node') ++ conf.env['CPPPATH_NODE'] = join(prefix, 'include', 'nodejs') + + conf.env.append_value('CPPFLAGS_NODE', '-D_GNU_SOURCE') + diff --git a/examples/nodejs/patches/03-waf.patch b/examples/nodejs/patches/03-waf.patch new file mode 100644 index 0000000..0eda3dc --- /dev/null +++ b/examples/nodejs/patches/03-waf.patch @@ -0,0 +1,16 @@ +diff -dubr source/tools/node-waf waf/tools/node-waf +--- source/tools/node-waf 2012-10-26 00:49:32.000000000 +0400 ++++ waf/tools/node-waf 2012-11-01 23:20:51.438482412 +0400 +@@ -5,7 +5,11 @@ + join = os.path.join + bindir = os.path.dirname(os.path.realpath(__file__)) + prefix = join(bindir, "..") +-wafdir = join(prefix, "lib", "node") ++if os.environ.has_key('PREFIX_NODE'): ++ prefix = os.environ['PREFIX_NODE'] ++else: ++ prefix = "/usr" ++wafdir = join(prefix, "share", "nodejs") + + w = join(wafdir, 'wafadmin') + t = join(w, 'Tools') diff --git a/examples/nodejs/patches/04-lib-path.patch b/examples/nodejs/patches/04-lib-path.patch new file mode 100644 index 0000000..c3ff124 --- /dev/null +++ b/examples/nodejs/patches/04-lib-path.patch @@ -0,0 +1,24 @@ +diff -dubr source/lib/module.js libpath/lib/module.js +--- source/lib/module.js 2012-10-26 00:49:32.000000000 +0400 ++++ libpath/lib/module.js 2012-11-01 23:30:34.638509805 +0400 +@@ -493,7 +493,7 @@ + }; + + Module._initPaths = function() { +- var paths = [path.resolve(process.execPath, '..', '..', 'lib', 'node')]; ++ var paths = ['/usr/lib/nodejs']; + + if (process.env['HOME']) { + paths.unshift(path.resolve(process.env['HOME'], '.node_libraries')); +diff -dubr source/tools/wafadmin/Tools/node_addon.py libpath/tools/wafadmin/Tools/node_addon.py +--- source/tools/wafadmin/Tools/node_addon.py 2012-11-01 23:22:54.032306132 +0400 ++++ libpath/tools/wafadmin/Tools/node_addon.py 2012-11-01 23:29:37.203544596 +0400 +@@ -70,7 +70,7 @@ + nodePath = None + if not os.environ.has_key('NODE_PATH'): + if not os.environ.has_key('HOME'): +- nodePath = join(get_prefix(), 'lib', 'node') ++ nodePath = join(get_prefix(), 'lib', 'nodejs') + else: + nodePath = join(os.environ['HOME'], '.node_libraries') + else: diff --git a/examples/nodejs/runtime-nodejs.p5m b/examples/nodejs/runtime-nodejs.p5m new file mode 100644 index 0000000..cf678bd --- /dev/null +++ b/examples/nodejs/runtime-nodejs.p5m @@ -0,0 +1,13 @@ +set name=pkg.fmri value=pkg:/runtime/$(name)@$(ips-version) +set name=pkg.summary value="$(summary)" +set name=info.upstream-url value="$(home)" +set name=info.source-url value="$(download)" +license $(license-file) license="$(license)" + + +dir path=usr/lib/nodejs +file usr/bin/node path=usr/bin/nodejs +link path=usr/bin/node target=nodejs +file usr/share/man/man1/node.1 path=usr/share/man/man1/nodejs.1 +link path=usr/share/man/man1/node.1 target=nodejs.1 + |