|
Bugzilla – Full Text Bug Listing |
| Summary: | "./waf" without previous "./waf configure" breakage | ||
|---|---|---|---|
| Product: | ns-3 | Reporter: | Rajib Bhattacharjea <raj.b> |
| Component: | build system | Assignee: | Gustavo J. A. M. Carneiro <gjcarneiro> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | mathieu.lacage |
| Priority: | P1 | ||
| Version: | ns-3-dev | ||
| Hardware: | All | ||
| OS: | All | ||
| Attachments: | test waf | ||
I removed the offending line, as it is actually not needed for anything. Please check if it fixes the bug. Fixes one issue, adds another (this time it shows up after checking for python, instead of after pkg-config
Checking for program python : ok /Library/Frameworks/Python.framework/Versions/Current/bin/python
Traceback (most recent call last):
File "./waf", line 127, in ?
Scripting.prepare(t, cwd, VERSION, wafdir)
File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Scripting.py", line 122, in prepare
prepare_impl(t,cwd,ver,wafdir)
File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Scripting.py", line 115, in prepare_impl
main()
File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Scripting.py", line 143, in main
configure()
File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Scripting.py", line 40, in configure
conf.sub_config('')
File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Configure.py", line 77, in sub_config
ret=mod.configure(self)
File "/Users/Raj/code.nsnam.org/ns-3-dev/wscript", line 235, in configure
conf.sub_config('bindings/python')
File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Configure.py", line 77, in sub_config
ret=mod.configure(self)
File "/Users/Raj/code.nsnam.org/ns-3-dev/bindings/python/wscript", line 130, in configure
conf.check_python_version((2,3))
File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Tools/python.py", line 241, in check_python_version
python_LIBDEST=os.path.join(conf.env['PREFIX'],"lib","python"+pyver)
File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/posixpath.py", line 62, in join
elif path == '' or path.endswith('/'):
AttributeError: 'list' object has no attribute 'endswith'
Grr! conf.env['PREFIX'] should return a string, not a list :| And this doesn't happen on darwin-ppc regression host :( Does the following command print anything? python -c "import os; print repr(os.environ['PREFIX'])" python -c "import os; print repr(os.environ['PREFIX'])"
Traceback (most recent call last):
File "<string>", line 1, in ?
File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/UserDict.py", line 17, in __getitem__
def __getitem__(self, key): return self.data[key]
KeyError: 'PREFIX'
Created attachment 349 [details]
test waf
Could you try this replacement waf, just to see what it prints?
Ah, I suspect all this is due to not running "./waf configure". "./waf" may trigger an autoconfig, but there's a possible bug with that autoconfig... Yes, I am using just "waf", not waf configure. waf configure works just fine actually. (In reply to comment #6) > Created an attachment (id=349) [details] > test waf > > Could you try this replacement waf, just to see what it prints? > This latest waf gives the same error: Traceback (most recent call last): File "./waf", line 127, in ? Scripting.prepare(t, cwd, VERSION, wafdir) File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-4adb452c4913bedee081db758adc6276/wafadmin/Scripting.py", line 122, in prepare prepare_impl(t,cwd,ver,wafdir) File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-4adb452c4913bedee081db758adc6276/wafadmin/Scripting.py", line 115, in prepare_impl main() File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-4adb452c4913bedee081db758adc6276/wafadmin/Scripting.py", line 143, in main configure() File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-4adb452c4913bedee081db758adc6276/wafadmin/Scripting.py", line 40, in configure conf.sub_config('') File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-4adb452c4913bedee081db758adc6276/wafadmin/Configure.py", line 77, in sub_config ret=mod.configure(self) File "/Users/Raj/code.nsnam.org/ns-3-dev/wscript", line 235, in configure conf.sub_config('bindings/python') File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-4adb452c4913bedee081db758adc6276/wafadmin/Configure.py", line 77, in sub_config ret=mod.configure(self) File "/Users/Raj/code.nsnam.org/ns-3-dev/bindings/python/wscript", line 130, in configure conf.check_python_version((2,3)) File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-4adb452c4913bedee081db758adc6276/wafadmin/Tools/python.py", line 241, in check_python_version python_LIBDEST=os.path.join(conf.env['PREFIX'],"lib","python"+pyver) File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/posixpath.py", line 62, in join elif path == '' or path.endswith('/'): AttributeError: 'list' object has no attribute 'endswith' ./waf configure gave the following: rajib-bhattacharjeas-computer:~/code.nsnam.org/ns-3-dev Raj$ ./waf configure Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for program g++ : ok /usr/bin/g++ Checking for compiler version : ok 4.0.1 Checking for program cpp : ok /usr/bin/cpp Checking for program ar : ok /usr/bin/ar Checking for program ranlib : ok /usr/bin/ranlib Checking for g++ : ok Checking for program pkg-config : ok /sw/bin/pkg-config Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for -Wno-error=deprecated-declarations support : no Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for header stdlib.h : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' ok Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for header signal.h : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' ok Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for library rt : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' not found Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for header pthread.h : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' ok Checking for high precision time implementation : 128-bit integer Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for header stdint.h : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' ok Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for header inttypes.h : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' ok Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for header sys/inttypes.h : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' not found Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for header linux/if_ether.h : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' not found Package pango was not found in the pkg-config search path. Perhaps you should add the directory containing `pango.pc' to the PKG_CONFIG_PATH environment variable Package 'pango', required by 'GDK', not found Checking for pkg-config flags for GTK_CONFIG_STORE : not found Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for library sqlite3 : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' ok Package goocanvas was not found in the pkg-config search path. Perhaps you should add the directory containing `goocanvas.pc' to the PKG_CONFIG_PATH environment variable No package 'goocanvas' found Checking for pkg-config flags for MOBILITY_VISUALIZER : not found Checking for program python : ok /Library/Frameworks/Python.framework/Versions/Current/bin/python Checking for Python version >= 2.3 : ok 2.4.4 Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for library python2.4 : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' not found Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for library python2.4 : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' ok Checking for program python2.4-config : not found Checking for program python-config-2.4 : not found Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Checking for header Python.h : Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' ok Checking for Python module pybindgen : not found pybindgen missing => no python bindings Checking for program diff : ok /usr/bin/diff Checking for program sudo : ok /usr/bin/sudo Checking for program hg : ok /Library/Frameworks/Python.framework/Versions/Current/bin/hg ---- Summary of optional NS-3 features: Threading Primitives : enabled Real Time Simulator : enabled Emulated Net Device : not enabled (<linux/if_ether.h> include not detected) GtkConfigStore : not enabled (library 'gtk+-2.0 >= 2.12' not found) SQlite stats data output : enabled Network Simulation Cradle : not enabled (--with-nsc configure option not given) Python Bindings : not enabled (PyBindGen missing) Options.options.prefix: '/usr/local/' os.path.abspath(os.path.expanduser(Options.options.prefix)): '/usr/local' self['PREFIX']: '/usr/local' The issue is only with the so called autoconfig. I can reproduce; not OSX specific. *** Bug 470 has been marked as a duplicate of this bug. *** |
Using a fresh version of ns-3-dev, using just "./waf": Reconfiguring the project Checking for program g++ : ok /usr/bin/g++ Checking for compiler version : ok 4.0.1 Checking for program cpp : ok /usr/bin/cpp Checking for program ar : ok /usr/bin/ar Checking for program ranlib : ok /usr/bin/ranlib Checking for g++ : ok Checking for program pkg-config : ok /sw/bin/pkg-config Traceback (most recent call last): File "./waf", line 127, in ? Scripting.prepare(t, cwd, VERSION, wafdir) File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Scripting.py", line 122, in prepare prepare_impl(t,cwd,ver,wafdir) File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Scripting.py", line 115, in prepare_impl main() File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Scripting.py", line 143, in main configure() File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Scripting.py", line 40, in configure conf.sub_config('') File "/Users/Raj/code.nsnam.org/ns-3-dev/.waf-1.5.2-e69116b0d3441cd20aea90dfddba6efd/wafadmin/Configure.py", line 77, in sub_config ret=mod.configure(self) File "/Users/Raj/code.nsnam.org/ns-3-dev/wscript", line 199, in configure variant_env['INCLUDEDIR'] = os.path.join(variant_env['PREFIX'], 'include') File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/posixpath.py", line 62, in join elif path == '' or path.endswith('/'): AttributeError: 'list' object has no attribute 'endswith' This is on Python 2.4.4 on OS X.