Cannot package static build using make 3.81

RESOLVED FIXED in Firefox 2 beta1

Status

()

Firefox
Build Config
RESOLVED FIXED
12 years ago
11 years ago

People

(Reporter: Frederic Bezies, Unassigned)

Tracking

({fixed1.8.1.2})

Trunk
Firefox 2 beta1
x86
Linux
fixed1.8.1.2
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 2 obsolete attachments)

(Reporter)

Description

12 years ago
User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20060531 Firefox/3.0a1
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20060531 Firefox/3.0a1

Simple to describe. I want to use static trunk build under my Ubuntu 6.06 (based on Gnome 2.14.1, so on GTK 2.8), and I have to apply patches from bug 305185 and from bug 328964.

Build process runs ok. But when I enter the "make -C browser/installer" in order to create the firefox archive, I get this error :

"rm -f -rf ../../dist/xpt
/usr/bin/perl -I../../xpinstall/packager -e 'use Packager; \
          Packager::Copy("../../dist", "../../dist/firefox", \
                         "packages-static", "unix", 1, 0, 1);'
Error: package file "SCALAR(0x814c69c)" is not a file or is unreadable.
See '-e --help' for more information.
Exiting...
make[1]: *** [firefox-3.0a1.en-US.linux-i686.tar.bz2] Error 4
make[1]: leaving directory « /home/fred/logs/fox/mozilla/browser/installer »
make: *** [all] Error 2
make: leaving directory « /home/fred/logs/fox/mozilla/browser/installer »"

Using "make -C xpinstall/packager/ works.


Reproducible: Always

Steps to Reproduce:
See details

Actual Results:  
package is not created.

Expected Results:  
having a tar.bz2 file with firefox in it.

My .mozconfig :

"#
# See http://www.mozilla.org/build/ for build instructions.
#

. $topsrcdir/browser/config/mozconfig

# Options for 'configure' (same as command-line options).
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --disable-freetype2
ac_add_options --enable-pango
ac_add_options --enable-canvas
ac_add_options --enable-svg
ac_add_options --disable-installer
ac_add_options --disable-updater
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --enable-optimize="-Os -pipe -march=pentium4"
ac_add_options --enable-strip
ac_add_options --disable-pedantic
ac_add_options --enable-static
ac_add_options --disable-shared"

Gcc used is :

"$ gcc -v
Utilisation des specs internes.
Cible : i486-linux-gnu
Configuré avec: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=pentium4 --enable-checking=release i486-linux-gnu
Modèle de thread: posix
version gcc 4.0.3 (Ubuntu 4.0.3-1ubuntu5)"
(Reporter)

Comment 1

12 years ago
Erh... I commited a little mistake. It was not bug 328964 but bug 312951... Oops ;)

Comment 2

12 years ago
Maybe try building with --enable-installer instead of --disable-installer?
(Reporter)

Comment 3

12 years ago
Here is the log of busting :

rm -f -rf ../../dist/xpt
/usr/bin/perl -I../../xpinstall/packager -e 'use Packager; \
          Packager::Copy("../../dist", "../../dist/firefox", \
                         "packages-static", "unix", 1, 0, 1);'
Error: package file "SCALAR(0x814c660)" is not a file or is unreadable.
See '-e --help' for more information.

Hope it helps ;)

Comment 4

12 years ago
What version of perl are you using?  And which shell is make using?
(Reporter)

Comment 5

12 years ago
Perl ?

fred:~$ perl --version

This is perl, v5.8.7 built for i486-linux-gnu-thread-multi
(with 1 registered patch, see perl -V for more detail)

Shell ?

fred:~$ bash --version
GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
Copyright © 2005 Free Software Foundation, Inc.

And an up-to-date ubuntu 6.06 LTS.

fred:~$ uname -a
Linux fredo 2.6.15-25-386 #1 PREEMPT Wed Jun 14 11:25:49 UTC 2006 i686 GNU/Linux

Any other info needed ?
(Reporter)

Updated

12 years ago
Version: unspecified → Trunk
(Reporter)

Comment 6

12 years ago
Forget to add, I changed my .mozconfig, removing "--disable-installer" line.

Comment 7

12 years ago
Does /bin/sh point to bash? 
(Reporter)

Comment 8

12 years ago
/bin/sh is a symbolic link for bash.

Comment 9

12 years ago
Created attachment 228571 [details] [diff] [review]
swag

Try this. 'package' is a reserved word in perl and your particular version may be getting confused by the use of '$package'.  I think it's unlikely that this is the problem but it's worth investigating.

Comment 10

12 years ago
Created attachment 228610 [details] [diff] [review]
make 1.81 compat patch, v1

The problem here comes from make version 3.81 which added an incompatibility with backslash-newline handling.

See bug 325148 which is about the same problem.

This patch takes the approach described there:

http://lists.debian.org/debian-devel/2005/12/msg00988.html

The alternative would be to use make variables.

I did not test with older make version however.
(Reporter)

Comment 11

12 years ago
patch "make 1.81..." seems to work great.

Comment 12

12 years ago
Comment on attachment 228610 [details] [diff] [review]
make 1.81 compat patch, v1

Something's still not right here.  With FC5's make 3.80, it runs the parses the commands but the perl command doesn't do anything and the next command fails because of the missing $(DIST)/xpt directory.  I just installed make3.81 locally and it doesn't work with this patch either.
Attachment #228610 - Flags: review-

Comment 13

12 years ago
(In reply to comment #12)
> (From update of attachment 228610 [details] [diff] [review] [edit])
> Something's still not right here.  With FC5's make 3.80, it runs the parses the
> commands but the perl command doesn't do anything and the next command fails
> because of the missing $(DIST)/xpt directory.  I just installed make3.81
> locally and it doesn't work with this patch either.

hmm, I should really test with an older make to see what's happening.

When you test with make3.81 locally, pay attention to the fact that if you run your just compiled new make binary, it will invoke your system make version 3.80 if it is still available in your $PATH, as make invokes itself recursively. I have been hit by this problem when I tried with another locally compiled make. Otherwise, please ignore this if you have already taken the appropriate steps.

Comment 14

12 years ago
Created attachment 228844 [details] [diff] [review]
v2.0

Use a macro to avoid the quote issue.  Tested with make 3.80 & 3.81 on FC5.
Attachment #228571 - Attachment is obsolete: true
Attachment #228610 - Attachment is obsolete: true
Attachment #228844 - Flags: review?

Comment 15

12 years ago
(In reply to comment #13)
> When you test with make3.81 locally, pay attention to the fact that if you run
> your just compiled new make binary, it will invoke your system make version
> 3.80 if it is still available in your $PATH, as make invokes itself
> recursively. I have been hit by this problem when I tried with another locally
> compiled make. Otherwise, please ignore this if you have already taken the
> appropriate steps.

I'm a bit wrong there. In fact it takes the make location from the MAKE variable in config/autoconf.mk when invoking itself recursively.

Comment 16

12 years ago
(In reply to comment #15)
> I'm a bit wrong there. In fact it takes the make location from the MAKE
> variable in config/autoconf.mk when invoking itself recursively.

I thought that GNU make would set MAKE to itself when forking sub-makes but it does look like the one in config/autoconf.mk is being used.  When explicitly setting MAKE=make381 on the command-line, then the first patch works for make 3.81 but not for make3.80.

Updated

12 years ago
Attachment #228844 - Flags: review? → review?(benjamin)

Comment 17

12 years ago
Comment on attachment 228844 [details] [diff] [review]
v2.0

Interesting... I'm not sure I understand why this is different than other places we use backslash continuations, though... does it have to do with the single-quoting?
Attachment #228844 - Flags: review?(benjamin) → review+

Comment 18

12 years ago
I believe the single quote is the issue. According to bug 325148 comment 4, using double quotes works fine.

Checking in toolkit/mozapps/installer/packager.mk;
/cvsroot/mozilla/toolkit/mozapps/installer/packager.mk,v  <--  packager.mk
new revision: 1.41; previous revision: 1.40
done

Updated

12 years ago
Status: NEW → RESOLVED
Last Resolved: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 2 beta1
*** Bug 349498 has been marked as a duplicate of this bug. ***

Comment 20

12 years ago
*** Bug 354589 has been marked as a duplicate of this bug. ***

Comment 21

12 years ago
Please reopen this Bug, since it is still not integrated in firefox2rc2, which i downloaded today. The patch works for me [1], but it is still an issue in the releases.

[1] the "patch" command gives me the following, but it works anyway:
______________________________________________________________
File to patch: mozilla/toolkit/mozapps/installer/packager.mk
patching file mozilla/toolkit/mozapps/installer/packager.mk
Hunk #1 succeeded at 272 (offset -9 lines).
Hunk #2 succeeded at 288 with fuzz 1 (offset -9 lines).
Hunk #3 succeeded at 310 (offset -9 lines).

Comment 22

12 years ago
Hello:
This bug is stll present with 2.0rc3
The patch still works and is required.
$ make -version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-redhat-linux-gnu
]$ uname -a
Linux localhost.localdomain 2.6.18-1.2798.fc6 #1 SMP Mon Oct 16 14:37:32 EDT 2006 i686 athlon i386 GNU/Linux
Dan
*** Bug 357043 has been marked as a duplicate of this bug. ***

Comment 24

12 years ago
*** Bug 361710 has been marked as a duplicate of this bug. ***
Confirming that Firefox 2.0.0.1 source (from CVS) also has this problem.
Summary: [trunk] Cannot package static build using Ubuntu Dapper Drake → Cannot package static build using make 3.81
Attachment #228844 - Flags: approval1.8.1.2?

Comment 26

12 years ago
Comment on attachment 228844 [details] [diff] [review]
v2.0

Approved for 1.8 branch, a=jay for drivers.
Attachment #228844 - Flags: approval1.8.1.2? → approval1.8.1.2+
(In reply to comment #26)
> (From update of attachment 228844 [details] [diff] [review])
> Approved for 1.8 branch, a=jay for drivers.

Checking in toolkit/mozapps/installer/packager.mk;
/cvsroot/mozilla/toolkit/mozapps/installer/packager.mk,v  <--  packager.mk
new revision: 1.16.2.16; previous revision: 1.16.2.15
done 

Updated

11 years ago
Keywords: fixed1.8.1.2
You need to log in before you can comment on or make changes to this bug.