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

RESOLVED FIXED

Status

()

Firefox
Build Config
RESOLVED FIXED
14 years ago
13 years ago

People

(Reporter: Ali Ebrahim, Assigned: Brian Ryner (not reading))

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

14 years ago
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.
(Reporter)

Updated

14 years ago
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
(Reporter)

Comment 3

14 years ago
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.
(Reporter)

Comment 4

14 years ago
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
How does this relate to bug 232003?
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)
(Reporter)

Comment 10

14 years ago
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.)

Comment 13

14 years ago
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.
(Reporter)

Comment 14

14 years ago
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)

Comment 15

14 years ago
*** Bug 234840 has been marked as a duplicate of this bug. ***

Comment 16

13 years ago
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

Comment 17

13 years ago
This is fixed, with the aforementioned checkin to preprocessor.pl
Status: NEW → RESOLVED
Last Resolved: 13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.