Closed Bug 814796 Opened 8 years ago Closed 8 years ago

pymake error "global name 'cline' is not defined" at firefox 17 build with windows 7x64

Categories

(Firefox Build System :: General, defect)

17 Branch
x86
Windows 7
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: trhoudini, Assigned: benjamin)

References

Details

User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:16.0) Gecko/20121026 Firefox/16.0
Build ID: 20121026125834

Steps to reproduce:

Compiling Firefox17 with pymake on Win7x64 and msvc10 express
Latest pymake version "3aa21f3c918d: 2012-10-18 14:46 +0200"
Compilation succeeds with version before: "1ede73cbea2d: 2012-10-02 14:18 +0200"


Actual results:

Compilation stops with pymake error
[...]
make.py[7]: Entering directory 'c:\mozilla-release\obj-i686-pc-mingw32\toolkit\xre'
nsAppRunner.cpp
Traceback (most recent call last):
  File "c:/mozilla-build/pymake/make.py", line 21, in <module>
    pymake.process.ParallelContext.spin()
  File "c:\mozilla-build\pymake\pymake\process.py", line 526, in spin
    c.run()
  File "c:\mozilla-build\pymake\pymake\process.py", line 456, in run
    cb(*args, **kwargs)
  File "c:\mozilla-build\pymake\pymake\data.py", line 867, in _depfinishedparallel
    self.resolvecb(error=self.error, didanything=self.didanything)
  File "c:\mozilla-build\pymake\pymake\data.py", line 761, in resolvecb
    self.runnext()
  File "c:\mozilla-build\pymake\pymake\data.py", line 781, in runnext
    self.rlist.pop(0).runcommands(self.indent, self.commandscb)
  File "c:\mozilla-build\pymake\pymake\data.py", line 951, in runcommands
    self._commandcb(False)
  File "c:\mozilla-build\pymake\pymake\data.py", line 888, in _commandcb
    self.commands.pop(0)(self._commandcb)
  File "c:\mozilla-build\pymake\pymake\data.py", line 1400, in __call__
    process.call(self.cline, loc=self.loc, cb=self._cb, context=self.context, **self.kwargs)
  File "c:\mozilla-build\pymake\pymake\process.py", line 252, in call
    cb(res=0)
  File "c:\mozilla-build\pymake\pymake\data.py", line 1396, in _cb
    self.usercb(error=False)
  File "c:\mozilla-build\pymake\pymake\data.py", line 888, in _commandcb
    self.commands.pop(0)(self._commandcb)
  File "c:\mozilla-build\pymake\pymake\data.py", line 1417, in __call__
    raise DataError("native command '%s': shell metacharacter '%s' in command line" % (cline, badchar), self.loc)
NameError: global name 'cline' is not defined


Expected results:

Compilation should succeed
There are two parts to this:

I fixed the pymake error in http://hg.mozilla.org/users/bsmedberg_mozilla.com/pymake/rev/70cc78c5109a

The error was triggered by a Firefox issue which may already have been fixed (using a shell metachar in a native command). I'm going to mark this FIXED and if the "real" error still occurs you can file a new bug with the correct error message, ok?
Assignee: nobody → benjamin
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago
Component: General → Build Config
Resolution: --- → FIXED
Thank you for the fix, 
for the records, the 2nd DataError call uses plain cline as well:

--- data.py.old	2012-11-26 22:39:13 +0000
+++ data.py	2012-11-26 22:25:35 +0000
@@ -1416,7 +1416,7 @@
         if parts is None:
 			raise DataError("native command '%s': shell metacharacter '%s' in command line" % (self.cline, badchar), self.loc)
         if len(parts) < 2:
-            raise DataError("native command '%s': no method name specified" % cline, self.loc)
+            raise DataError("native command '%s': no method name specified" % self.cline, self.loc)
         module = parts[0]
         method = parts[1]
         cline_list = parts[2:] 

and yes, the real error is still there, the compiler call includes 
 -DAPP_ID={ec8030f7-c20a-464f-9b0e-13a3a9e97384}

But as I wrote, the compilation succeeds with pymake version: "1ede73cbea2d: 2012-10-02 14:18 +0200"
(In reply to Harald from comment #2)
> But as I wrote, the compilation succeeds with pymake version: "1ede73cbea2d:
> 2012-10-02 14:18 +0200"

Some changes to pymake require changes to the build system, and vice-versa. You should use the pymake version that comes with the Firefox source you're trying to build.
In particular, what you need if you really want to use the newest pymake is this:
http://hg.mozilla.org/mozilla-central/rev/6511fd29e7d8
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #1)
> There are two parts to this:
> 
> I fixed the pymake error in
> http://hg.mozilla.org/users/bsmedberg_mozilla.com/pymake/rev/70cc78c5109a
> 
> The error was triggered by a Firefox issue which may already have been fixed
> (using a shell metachar in a native command). I'm going to mark this FIXED
> and if the "real" error still occurs you can file a new bug with the correct
> error message, ok?

This didn't land on mozilla-central, did it?
Not yet, I figured it would come whenever an important uplift happened.
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #6)
> Not yet, I figured it would come whenever an important uplift happened.

You may want to apply comment 2 on the pymake repo, though.
Landed the second part.
http://hg.mozilla.org/users/bsmedberg_mozilla.com/pymake/rev/0b2eb2eaa056

I'll land on m-i later today.
Blocks: 794472
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.