~james-page/ubuntu/precise/nodejs/0.6.x-merge

« back to all changes in this revision

Viewing changes to .pc/2004_libev_compatibility.patch/tools/wafadmin/Tools/node_addon.py

  • Committer: James Page
  • Date: 2012-03-30 12:09:16 UTC
  • mfrom: (7.1.23 sid)
  • Revision ID: james.page@canonical.com-20120330120916-40hfu9o00qr5t87b
* Merge from Debian unstable:
  - New upstream release (LP: #892034).
  - This package is x86/arm only. Update control to match
  - d/patches/2009_increase_test_timeout.patch: Increased default test
    timeout from 60 to 120 seconds to support reliable execution of all
    tests on armhf/armel architectures.
  - d/patches/2005_expected_failing_tests.patch: 
    - Allow racey tests to fail: test-cluster-kill-workers,
      test-child-process-fork2 
    - Allow test-fs-watch to fail as LP buildd's don't support
      inotify.
    - Revert all other Ubuntu changes as no longer required.
* Update Standards-Version to 3.9.3.
* Patch wscript to enable build on mipsel arch, libv8 being available.
  Upstream does not support that arch, failure expected.
* test-cluster-kill-workers is expected to fail on armhf,
  Bug#660802 will be closed when test pass.
* test-buffer is expected to fail on armel,
  Bug#660800 will be closed when test pass.
* Add epoch to dependency on libev >= 1:4.11. Closes: bug#658441.
* Remove tools/doc because node-doc-generator has no license for now.
* Add copyright for doc/sh* files (shjs).
* source.lintian-overrides : source-contains-waf-binary tools/node-waf
  it is simply not the case here.
* test-stream-pipe-multi expected to timeout sometimes on busy builds. 
* New upstream release.
* Remove upstream patches.
* test-dgram-pingpong expected to timeout, the test itself is buggy.
* test-buffer expected to fail on armel, allow building package to make
  it easier to find the cause of the failure.
  Closes: bug#639636.
* Expect tests dgram-multicast and broadcast to fail.
  debian/patches/2005_expected_failing_tests.patch
* Drop dpkg-source local-options: Defaults since dpkg-source 1.16.1.
* New upstream release.
* Depend on libev-dev 4.11, see bug#657080.
* Bump dependency on openssl to 1.0.0g.
* Remove useless uv_loop_refcount from libuv,
  refreshed 2009_fix_shared_ev.patch.
* Apply to upstream patches landed after 0.6.10 release,
  to fix debugger repl and http client.
* New upstream release. Closes:bug#650661
* Repackage to remove non-dfsg font files ./deps/npm/html/*/*.ttf
* Remove unneeded bundled dependencies: lighter tarball,
  debian/copyright is easier to maintain.
* Drop unneeded build-dependency on scons.
* Depend on zlib1g, libc-ares, libev.
  Patches done to support building with those shared libs.
* Fix DEB_UPSTREAM_URL in debian/rules, and debian/watch.
* nodejs.pc file for pkgconfig is no more available.
* Build-depend on procps package, a test is using /bin/ps.
* Refreshed debian/patches/2005_expected_failing_tests.patch,
  only for tests that need networking.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
import os
2
 
import TaskGen, Utils, Utils, Runner, Options, Build
3
 
from TaskGen import extension, taskgen, before, after, feature
4
 
from Configure import conf, conftest
5
 
 
6
 
@taskgen
7
 
@before('apply_incpaths', 'apply_lib_vars', 'apply_type_vars')
8
 
@feature('node_addon')
9
 
@before('apply_bundle')
10
 
def init_node_addon(self):
11
 
        self.default_install_path = self.env['NODE_PATH']
12
 
        self.uselib = self.to_list(getattr(self, 'uselib', ''))
13
 
        if not 'NODE' in self.uselib: self.uselib.append('NODE')
14
 
        self.env['MACBUNDLE'] = True
15
 
 
16
 
@taskgen
17
 
@before('apply_link', 'apply_lib_vars', 'apply_type_vars')
18
 
@after('apply_bundle')
19
 
@feature('node_addon')
20
 
def node_addon_shlib_ext(self):
21
 
        self.env['shlib_PATTERN'] = "%s.node"
22
 
 
23
 
def detect(conf):
24
 
  join = os.path.join
25
 
 
26
 
  conf.env['PREFIX_NODE'] = get_prefix()
27
 
  prefix = conf.env['PREFIX_NODE']
28
 
  lib = join(prefix, 'lib')
29
 
 
30
 
  conf.env['LIBPATH_NODE'] = lib
31
 
  conf.env['CPPPATH_NODE'] = join(prefix, 'include', 'nodejs')
32
 
 
33
 
  conf.env.append_value('CPPFLAGS_NODE', '-D_GNU_SOURCE')
34
 
  conf.env.append_value('CPPFLAGS_NODE', '-DEV_MULTIPLICITY=0')
35
 
 
36
 
  conf.env.append_value('CCFLAGS_NODE', '-D_LARGEFILE_SOURCE')
37
 
  conf.env.append_value('CCFLAGS_NODE', '-D_FILE_OFFSET_BITS=64')
38
 
 
39
 
  conf.env.append_value('CXXFLAGS_NODE', '-D_LARGEFILE_SOURCE')
40
 
  conf.env.append_value('CXXFLAGS_NODE', '-D_FILE_OFFSET_BITS=64')
41
 
 
42
 
  # with symbols
43
 
  conf.env.append_value('CCFLAGS', ['-g'])
44
 
  conf.env.append_value('CXXFLAGS', ['-g'])
45
 
  # install path
46
 
  conf.env['NODE_PATH'] = get_node_path()
47
 
  # this changes the install path of cxx task_gen
48
 
  conf.env['LIBDIR'] = conf.env['NODE_PATH']
49
 
 
50
 
  found = os.path.exists(conf.env['NODE_PATH'])
51
 
  conf.check_message('node path', '', found, conf.env['NODE_PATH'])
52
 
 
53
 
  found = os.path.exists(join(prefix, 'bin', 'node'))
54
 
  conf.check_message('node prefix', '', found, prefix)
55
 
 
56
 
  ## On Cygwin we need to link to the generated symbol definitions
57
 
  if Options.platform.startswith('cygwin'): conf.env['LIB_NODE'] = 'node'
58
 
 
59
 
  ## On Mac OSX we need to use mac bundles
60
 
  if Options.platform == 'darwin': conf.check_tool('osx')
61
 
 
62
 
def get_node_path():
63
 
    join = os.path.join
64
 
    nodePath = None
65
 
    if not os.environ.has_key('NODE_PATH'):
66
 
        if not os.environ.has_key('HOME'):
67
 
            nodePath = join(get_prefix(), 'lib', 'nodejs')
68
 
        else:
69
 
            nodePath = join(os.environ['HOME'], '.node_libraries')
70
 
    else:
71
 
        nodePath = os.environ['NODE_PATH']
72
 
    return nodePath
73
 
 
74
 
def get_prefix():
75
 
    prefix = None
76
 
    if not os.environ.has_key('PREFIX_NODE'):
77
 
        prefix = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..'))
78
 
    else:
79
 
        prefix = os.environ['PREFIX_NODE']
80
 
    return prefix