Revision: 89728 http://trac.macports.org/changeset/89728 Author: ciserlohn@macports.org Date: 2012-02-08 02:28:46 -0800 (Wed, 08 Feb 2012) Log Message: ----------- nodejs-devel: update to version 0.7.3 * add custom destroot phase as the new build system does not respect DESTDIR * patch harcoded build arch * add python variants (affects gyp and waf) * remove Makefile patch included upstream * prevent installation on Mac OS X < 10.5 * fix livecheck Modified Paths: -------------- trunk/dports/devel/nodejs-devel/Portfile Added Paths: ----------- trunk/dports/devel/nodejs-devel/files/patch-tools-gyp-pylib-gyp-generator-make.py-BUILD_ARCH.diff Removed Paths: ------------- trunk/dports/devel/nodejs-devel/files/patch-Makefile-python.diff Modified: trunk/dports/devel/nodejs-devel/Portfile =================================================================== --- trunk/dports/devel/nodejs-devel/Portfile 2012-02-08 10:19:31 UTC (rev 89727) +++ trunk/dports/devel/nodejs-devel/Portfile 2012-02-08 10:28:46 UTC (rev 89728) @@ -4,9 +4,10 @@ PortSystem 1.0 name nodejs-devel -version 0.5.10 +version 0.7.3 categories devel net platforms darwin +license {MIT BSD} maintainers ciserlohn description Evented I/O for V8 JavaScript @@ -19,17 +20,13 @@ conflicts nodejs homepage http://nodejs.org/ -master_sites ${homepage}dist/v${version}/ +master_sites ${homepage}dist/v${version} -checksums rmd160 a0bcf79343556f36186971459dd2bafccb4527d8 \ - sha256 56396854f85a0d2fafc038436be3d84041f991f59613761e61295fc02d662a40 +checksums rmd160 d740e822c03c0b3f582204f2117894b80b8735bb \ + sha256 292204f73b4007fecf7aa9d065a0360abc43a1fc007ea1138cf4fa8d553cca58 distname node-v${version} -depends_lib port:python27 - -patchfiles patch-Makefile-python.diff - proc rec_glob {basedir pattern} { set files [glob -directory $basedir -nocomplain -type f $pattern] foreach dir [glob -directory $basedir -nocomplain -type d *] { @@ -38,31 +35,46 @@ return $files } -set py27_bin ${prefix}/bin/python2.7 +configure.python ${prefix}/bin/python2.7 +patchfiles patch-tools-gyp-pylib-gyp-generator-make.py-BUILD_ARCH.diff + post-patch { - foreach f [concat ${worksrcpath}/tools/node-waf ${worksrcpath}/tools/waf-light \ - ${worksrcpath}/tools/gyp_node ${worksrcpath}/tools/gyp/gyp \ - ${worksrcpath}/wscript ${worksrcpath}/configure-gyp \ - ${worksrcpath}/deps/uv/gyp_uv [rec_glob ${worksrcpath} *.py]] { - reinplace "s|/usr/bin/env python|${py27_bin}|" ${f} + foreach f [concat ${worksrcpath}/configure \ + ${worksrcpath}/tools/node-waf \ + ${worksrcpath}/tools/waf-light \ + ${worksrcpath}/tools/gyp/gyp \ + ${worksrcpath}/tools/gyp_addon \ + ${worksrcpath}/tools/gyp_node \ + ${worksrcpath}/deps/uv/gyp_uv \ + [rec_glob ${worksrcpath} *.py]] { + reinplace "s|/usr/bin/env python|${configure.python}|" ${f} } + reinplace "s|__MP_BUILD_ARCH__|${build_arch}|g" ${worksrcpath}/tools/gyp/pylib/gyp/generator/make.py } -# see tickets #28066, #28562 and #29927 -pre-configure { - foreach {badport badfile} "libev ${prefix}/include/ev.h c-ares ${prefix}/include/ares.h libpftputil ${prefix}/include/util.h" { - if {[file exists ${badfile}]} { - ui_error "${name} cannot be built while ${badport} is active." - ui_error "Please deactivate ${badport} and try again." - ui_error "You can reactivate ${badport} again later." - return -code error "${badport} is installed" - } - } +configure.args --without-ssl +configure.args-append --without-npm + +variant python25 conflicts python26 python27 description {Use python 2.5} { + depends_lib port:python25 + configure.python ${prefix}/bin/python2.5 } -configure.args --without-ssl +variant python26 conflicts python25 python27 description {Use python 2.6} { + depends_lib port:python26 + configure.python ${prefix}/bin/python2.6 +} +variant python27 conflicts python25 python26 description {Use python 2.7} { + depends_lib port:python27 + configure.python ${prefix}/bin/python2.7 +} + +if {![variant_isset python25] && ![variant_isset python26]} { + default_variants +python27 +} + variant ssl description {Add secure socket layer support} { depends_build-append port:pkgconfig depends_lib-append port:openssl @@ -83,16 +95,73 @@ use_parallel_build no +switch $build_arch { + i386 { + configure.args-append --dest-cpu=ia32 + } + x86_64 { + configure.args-append --dest-cpu=x64 + } +} + build.args-append CC=${configure.cc} \ CXX=${configure.cxx} \ - CFLAGS="${configure.cflags} ${configure.cc_archflags}" \ - LDFLAGS="${configure.ldflags} ${configure.ld_archflags}" \ - PYTHON=${py27_bin} + CPP=${configure.cpp} \ + CFLAGS=${configure.cflags} \ + LDFLAGS=${configure.ldflags} \ + PYTHON=${configure.python} -post-destroot { +destroot { + set bindir ${destroot}${prefix}/bin + set libdir ${destroot}${prefix}/lib/node + set incdir ${destroot}${prefix}/include/node + set incpdir ${destroot}${prefix}/include/node/uv-private set docdir ${destroot}${prefix}/share/doc/${name} + + xinstall -d ${bindir} + xinstall -d ${libdir} + xinstall -d ${incdir} + xinstall -d ${incpdir} xinstall -d ${docdir} + +# install binaries + xinstall -m 755 -W ${worksrcpath} \ + out/Release/node \ + tools/node-waf \ + ${bindir} + +# install headers xinstall -m 644 -W ${worksrcpath} \ + src/node.h \ + src/node_buffer.h \ + src/node_object_wrap.h \ + src/node_version.h \ + deps/v8/include/v8-debug.h \ + deps/v8/include/v8-preparser.h \ + deps/v8/include/v8-profiler.h \ + deps/v8/include/v8-testing.h \ + deps/v8/include/v8.h \ + deps/v8/include/v8stdint.h \ + deps/uv/include/uv.h \ + deps/uv/include/ares.h \ + deps/uv/include/ares_version.h \ + ${incdir} + +# install privat uv headers + xinstall -m 644 -W ${worksrcpath} \ + deps/uv/include/uv-private/eio.h \ + deps/uv/include/uv-private/ev.h \ + deps/uv/include/uv-private/ngx-queue.h \ + deps/uv/include/uv-private/tree.h \ + deps/uv/include/uv-private/uv-unix.h \ + deps/uv/include/uv-private/uv-win.h \ + ${incpdir} + +# install the wafadmin tool + eval xinstall -m 644 [rec_glob ${worksrcpath}/tools/wafadmin *.py] ${libdir} + +# install docs + xinstall -m 644 -W ${worksrcpath} \ AUTHORS \ ChangeLog \ LICENSE \ @@ -100,5 +169,13 @@ ${docdir} } +if {${os.major} < 9} { + pre-fetch { + ui_error "${name} ${version} requires Mac OS X 10.5 or greater." + return -code error "incompatible Mac OS X version" + } +} + +livecheck.url ${homepage}dist/ livecheck.type regex -livecheck.regex node-v(\\d+\\.\[13579\]+\\.\\d+) +livecheck.regex v(\\d+\\.\[13579\]+\\.\\d+) Deleted: trunk/dports/devel/nodejs-devel/files/patch-Makefile-python.diff =================================================================== --- trunk/dports/devel/nodejs-devel/files/patch-Makefile-python.diff 2012-02-08 10:19:31 UTC (rev 89727) +++ trunk/dports/devel/nodejs-devel/files/patch-Makefile-python.diff 2012-02-08 10:28:46 UTC (rev 89728) @@ -1,87 +0,0 @@ ---- Makefile.orig 2011-08-27 10:03:17.000000000 +0200 -+++ Makefile 2011-08-27 10:06:03.000000000 +0200 -@@ -1,4 +1,4 @@ --WAF=python tools/waf-light -+WAF=$(PYTHON) tools/waf-light - - web_root = node@nodejs.org:~/web/nodejs.org/ - -@@ -33,40 +33,40 @@ - @$(WAF) uninstall - - test: all -- python tools/test.py --mode=release simple message -+ $(PYTHON) tools/test.py --mode=release simple message - - test-http1: all -- python tools/test.py --mode=release --use-http1 simple message -+ $(PYTHON) tools/test.py --mode=release --use-http1 simple message - - test-valgrind: all -- python tools/test.py --mode=release --valgrind simple message -+ $(PYTHON) tools/test.py --mode=release --valgrind simple message - - test-all: all -- python tools/test.py --mode=debug,release -+ $(PYTHON) tools/test.py --mode=debug,release - - test-all-http1: all -- python tools/test.py --mode=debug,release --use-http1 -+ $(PYTHON) tools/test.py --mode=debug,release --use-http1 - - test-all-valgrind: all -- python tools/test.py --mode=debug,release --valgrind -+ $(PYTHON) tools/test.py --mode=debug,release --valgrind - - test-release: all -- python tools/test.py --mode=release -+ $(PYTHON) tools/test.py --mode=release - - test-debug: all -- python tools/test.py --mode=debug -+ $(PYTHON) tools/test.py --mode=debug - - test-message: all -- python tools/test.py message -+ $(PYTHON) tools/test.py message - - test-simple: all -- python tools/test.py simple -+ $(PYTHON) tools/test.py simple - - test-pummel: all -- python tools/test.py pummel -+ $(PYTHON) tools/test.py pummel - - test-internet: all -- python tools/test.py internet -+ $(PYTHON) tools/test.py internet - - UVTEST += simple/test-assert - UVTEST += simple/test-buffer -@@ -261,10 +261,10 @@ - - - test-uv: all -- NODE_USE_UV=1 python tools/test.py --libuv simple -+ NODE_USE_UV=1 $(PYTHON) tools/test.py --libuv simple - - test-uv-debug: all -- NODE_USE_UV=1 python tools/test.py --mode=debug simple -+ NODE_USE_UV=1 $(PYTHON) tools/test.py --mode=debug simple - - - out/Release/node: all -@@ -348,10 +348,10 @@ - ./node benchmark/idle_clients.js & - - jslint: -- PYTHONPATH=tools/closure_linter/ python tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ -r test/ -+ PYTHONPATH=tools/closure_linter/ $(PYTHON) tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ -r test/ - - cpplint: -- @python tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c) -+ @$(PYTHON) tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c) - - lint: jslint cpplint - Added: trunk/dports/devel/nodejs-devel/files/patch-tools-gyp-pylib-gyp-generator-make.py-BUILD_ARCH.diff =================================================================== --- trunk/dports/devel/nodejs-devel/files/patch-tools-gyp-pylib-gyp-generator-make.py-BUILD_ARCH.diff (rev 0) +++ trunk/dports/devel/nodejs-devel/files/patch-tools-gyp-pylib-gyp-generator-make.py-BUILD_ARCH.diff 2012-02-08 10:28:46 UTC (rev 89728) @@ -0,0 +1,20 @@ +--- tools/gyp/pylib/gyp/generator/make.py.orig 2012-02-08 09:48:57.000000000 +0100 ++++ tools/gyp/pylib/gyp/generator/make.py 2012-02-08 09:50:21.000000000 +0100 +@@ -893,7 +893,7 @@ + self._WarnUnimplemented('PRODUCT_TYPE') + + # TODO: Do not hardcode arch. Supporting fat binaries will be annoying. +- cflags.append('-arch i386') ++ cflags.append('-arch __MP_BUILD_ARCH__') + + cflags += self._Settings().get('OTHER_CFLAGS', []) + cflags += self._Settings().get('WARNING_CFLAGS', []) +@@ -987,7 +987,7 @@ + '-Wl,' + target.Absolutify(self._Settings()['ORDER_FILE'])) + + # TODO: Do not hardcode arch. Supporting fat binaries will be annoying. +- ldflags.append('-arch i386') ++ ldflags.append('-arch __MP_BUILD_ARCH__') + + # Xcode adds the product directory by default. + ldflags.append('-L' + generator_default_variables['PRODUCT_DIR'])