Hello,
I just got a report from one of the people rebuilding the entire Debian archive in preparation for the release. Apparently lprof fails to build with the current scons_0.96.93. I'm not sure what is the problem. The build log is below. Report address is http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=400061
Full failed build log is at http://ox.blop.info/bazaar/buildlogs/20061122/lprof_1.11.4.dfsg+1.11.4.1-1_etch32.buildlog
Here is my own build attempt today:
Looking for build directory for platform 'linux2'
Exact match not found, finding closest guess
Found directory build/linux, will build there
AttributeError: :
File "/tmp/buildd/lprof-1.11.4.dfsg+1.11.4.1/SConstruct", line 277:
SConscript(os.path.join(target_dir,'SConscript'))
File "/usr/lib/scons/SCons/Script/SConscript.py", line 579:
return apply(method, args, kw)
File "/usr/lib/scons/SCons/Script/SConscript.py", line 516:
return apply(_SConscript, [self.fs,] + files, subst_kw)
File "/usr/lib/scons/SCons/Script/SConscript.py", line 244:
exec _file_ in call_stack[-1].globals
File "/tmp/buildd/lprof-1.11.4.dfsg+1.11.4.1/build/linux/SConscript", line 16:
lprof=env.Program(target='lprof', source=sources + moc_sources0 + moc_sources1 + moc_sources2 + moc_sources3 + moc_sources4 + moc_sources5 + moc_sources6 + moc_sources7 + moc_sources8)
File "/usr/lib/scons/SCons/Environment.py", line 188:
return apply(self.builder, (self.env, target, source) + args, kw)
File "/usr/lib/scons/SCons/Builder.py", line 615:
return self._execute(env, target, source, OverrideWarner(kw), ekw)
File "/usr/lib/scons/SCons/Builder.py", line 794:
return BuilderBase._execute(self, env, target, final_sources, overwarn)
File "/usr/lib/scons/SCons/Builder.py", line 567:
tlist, slist = self._create_nodes(env, target, source)
File "/usr/lib/scons/SCons/Builder.py", line 536:
target, source = self.emitter(target=tlist, source=slist, env=env)
File "/usr/lib/scons/SCons/Builder.py", line 357:
target, source = e(target, source, env)
File "/usr/lib/scons/SCons/Tool/qt.py", line 143:
cpp_contents = cpp.get_contents()
File "/usr/lib/scons/SCons/Node/FS.py", line 762:
raise AttributeError
make: *** [build-stamp] Error 2
The last recorded successful build of this package version was with scons_0.96.92.
I'm going to look at the difference in the references scons scripts between .93 and .92 versions of scons to see if it's their bug, but I dont' know enough about scons and lprof build system to make a call right now. Maybe you will see it better.
Logged In: YES
user_id=7339
Originator: NO
This is an Scons bug. See http://scons.tigris.org/issues/show_bug.cgi?id=1506
Logged In: YES
user_id=1052244
Originator: NO
Sorry for not getting back to you sooner. Had a look at this today and thought I found the issue and how to fix it. But more testing proved me wrong in that I don't know how to fix it. At this point I think it is a bug introduced in 0.96.93 in the way scons handles (more correctly does not handle) generating the moc files for qt based programs that are not generated from a UI file (IE. programmer written QT code).
In LProf and most other QT programs designer is used to paint the UI and then the actual programming code that implements the logic needed to support the functionality of the UI is written in a module that inherits the base class(es) generated by uic from the UI file(s). These programmer written modules need to be processed by moc and the resulting moc*.cc file needs to be compiled and linked into the application. For some reason scons 0.96.93 is not correctly generating the moc files from these programmer written QT based modules in spite of the fact that I explicitly tell it to in the Sconstruct. If I first build the app with scons 0.96.92 and then inspect the build and src directories it is clear that the correct moc files have been generated (even though it places these in the src directory rather than the build directory - which I think is also a bug) and I can then rebuild using scons 0.96.93 without any errors using the same (unchanged) scons scripts. But it will not build with a clean source tree using 0.96.93. If I clean everything out of the src and build directories other than the moc*.cc files for the programmer written QT code it will build with 0.96.93. So this is clearly related to the moc files not being generated.
Clearly something in 0.96.93 changed. I don't know if .93 if finding a problem in the LProf build scripts that .92 didn't or if there is some kind of bug or regression that was (re)introduced in .93. I have posted to the scons-users email list asking about this and perhaps someone there will be able to help.
Logged In: YES
user_id=1052244
Originator: NO
Yes that is it. It looks like there is an scons patch that has been submitted for this as well.