Closed Bug 232002 Opened 21 years ago Closed 20 years ago

Build fails using ActiveState Perl 5.8.3.809 while packaging JARs (preprocessor)

Categories

(Firefox Build System :: General, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ali, Assigned: bryner)

References

Details

When using ActiveState Perl 5.80 / Cygwin make 3.79 / MSVC (any version 6 or
newer), building Firebird fails while packaging JARs. It works fine using Cygwin
Perl 5.8.2. The error is as below:

make[5]: Leaving directory `/cygdrive/d/cvs-1.11.5/nightly/browser/base/skin'
+++ making chrome d:/cvs-1.11.5/nightly/browser/base  => ../../dist/bin/chrome/b
rowser.jar
+++ adding chrome ../../dist/bin/chrome/installed-chrome.txt
+++     content,install,url,jar:resource:/chrome/browser.jar!/content/browser/
d:/cvs-1.11.5/mozilla/config/preprocessor.pl:D:\cvs-1.11.5\mozilla\browser\base\
content\browser.xul:38: error evaluating include: Couldn't open D:\cvs-1.11.5\ni
ghtly\browser\base\browser-doctype.inc: No such file or directory

Preprocessing of d:/cvs-1.11.5/mozilla/browser/base/content/browser.xul failed:
1 at d:/cvs-1.11.5/mozilla/config/make-jars.pl line 413, <STDIN> line 7.
Summary: Build fails using ActiveState Perl 5.80 while packaging JARs → Build fails using ActiveState Perl 5.8.0 while packaging JARs
the changes to the XUL preprocessor are to blame here.  Unfortunately I don't
know enough about perl to attempt to guess why.
I get the same problem on cygwin perl 5.8.0

hixie's patch to not require File::Spec 0.8 is what broke this
It works fine with Cygwin Perl 5.8.2. I'm trying AS Perl 5.8.2.808 now and will
update the bug when I know the result.
I get the same error with ActiveState Perl 5.8.2.808.
Summary: Build fails using ActiveState Perl 5.8.0 while packaging JARs → Build fails using ActiveState Perl 5.8.2.808 while packaging JARs
note: it might have been the patch to include --line-endings, since backing up
just that seems to work
<mconnor> Hixie_: actually, now that I nuked my tree, it is the filespec change
its probably unrelated, backing out the changes to File::Spec 0.8 works with
make 3.79.1
So should we back out the fix for bug 227078? Or do we say ActiveState Perl is 
not supported? (Or can someone work out what the problem is?)
Summary: Build fails using ActiveState Perl 5.8.2.808 while packaging JARs → Build fails using ActiveState Perl 5.8.2.808 while packaging JARs (preprocessor)
RE comment 9, given that ActiveState Perl is *required* to build the Firebird
installer, we shouldn't drop support for it unless someone can fix bug 228776.
If nobody using ActiveState perl is capable of debugging the problem, then we
should drop support for it for lack of ownership.  If somebody using ActiveState
perl is capable of debugging the problem, then it should be analyzed rather than
just backed out.
(What I would suggest is putting some prints in the preprocessor perl script --
both the versions before and after the patch mentioned in comment 8 and comment
9 -- and seeing what the difference is.)
I've managed to fix this locally, by changing line 101
(http://lxr.mozilla.org/mozilla/source/config/preprocessor.pl#101) from
        my($volume, $path) = File::Spec::_0_8::splitpath($filename);
to
        my($volume, $path) = File::Spec->splitpath($filename);

The problem being that the rel2abs on the line above produces a *Windows* path
(with backslashes and all) when including files (because $directory is empty, so
File::Spec::_0_8::rel2abs uses cwd()). It may be a "better" fix to change the
hacked-in File::Spec 0.8 code to munge the cwd() result depending on $^O. I have
no idea if using File::Spec->splitpath will work as expected on pre File::Spec
0.8 system, as I only have access to versions 0.86 and 0.83.
Updating summary for new version of AS Perl, and different error output (still
same error, though):

make[5]: Leaving directory `/cygdrive/d/cvs-1.11.5/nightly/browser/base/skin'
+++ making chrome d:/cvs-1.11.5/nightly/browser/base  => ../../dist/bin/chrome/b
rowser.jar
+++ adding chrome ../../dist/bin/chrome/installed-chrome.txt
+++     content,install,url,jar:resource:/chrome/browser.jar!/content/browser/
+++ adding chrome ../../dist/bin/chrome/installed-chrome.txt
+++     content,install,url,jar:resource:/chrome/browser.jar!/content/browser-re
gion/
d:/cvs-1.11.5/mozilla/config/preprocessor.pl:D:\cvs-1.11.5\mozilla\browser\base\
content\browser.xul:38: error evaluating include: Couldn't open D:\cvs-1.11.5\ni
ghtly\browser\base\browser-doctype.inc: No such file or directory

Preprocessing of d:/cvs-1.11.5/mozilla/browser/base/content/browser.xul failed:
1 at d:/cvs-1.11.5/mozilla/config/make-jars.pl line 433, <STDIN> line 12.
Summary: Build fails using ActiveState Perl 5.8.2.808 while packaging JARs (preprocessor) → Build fails using ActiveState Perl 5.8.3.809 while packaging JARs (preprocessor)
*** Bug 234840 has been marked as a duplicate of this bug. ***
I've noticed an un-marked checking to preprocessor.pl (thanks to it causing CVS
conflicts in my tree) that I suspect fixes this bug, but I've not tested.

http://bonsai.mozilla.org/cvslog.cgi?file=mozilla/config/preprocessor.pl&rev=3.26
This is fixed, with the aforementioned checkin to preprocessor.pl
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Component: Build Config → General
Product: Firefox → Firefox Build System
You need to log in before you can comment on or make changes to this bug.