Open Bug 875268 Opened 11 years ago Updated 2 years ago

Compilation fails with --disable-wave --disable-ogg --disable-webm

Categories

(Firefox Build System :: General, defect)

21 Branch
x86_64
Linux
defect

Tracking

(firefox23 affected)

Tracking Status
firefox23 --- affected

People

(Reporter: mozilla, Unassigned)

References

Details

Attachments

(2 files)

Attached file config.log
User Agent: Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.14

Steps to reproduce:

Tried to compile Thunderbird with the following configure parameters:

./configure --prefix=/usr --with-user-appdir=.thunderbird --enable-application=mail --disable-system-cairo --disable-crashreporter --with-system-nspr --with-system-nss --with-system-zlib --with-system-jpeg --with-system-mng --enable-xft --disable-freetype2 --with-system-sqlite --disable-gnomevfs --disable-startup-notification --disable-gconf --disable-necko-wifi --disable-wave --disable-ogg --disable-webm --disable-dbus --enable-strip --enable-official-branding

config.log has been attached


Actual results:

Build failed with the following error:

c++ -o dom_quickstubs.o -c -I../../../dist/stl_wrappers -I../../../dist/system_wrappers -include ../../../config/gcc_hidden.h -DMOZ_GLUE_IN_PROGRAM -DMOZILLA_INTERNAL_API -D_IMPL_NS_COM -DEXPORT_XPT_API -DEXPORT_XPTC_API -D_IMPL_NS_GFX -D_IMPL_NS_WIDGET -DIMPL_XREAPI -DIMPL_NS_NET -DIMPL_THEBES  -DSTATIC_EXPORTABLE_JS_API -DMOZ_THUNDERBIRD=1 -DJSFILE -DJS_THREADSAFE -DEXPORT_XPC_API -DNO_NSPR_10_SUPPORT  -DMOZ_JSDEBUGGER -D_IMPL_NS_LAYOUT -I../../../js/xpconnect/src/../wrappers -I../../../js/xpconnect/src/../loader -I../../../caps/include -I../../../content/base/src -I../../../content/events/src -I../../../content/html/content/src -I../../../content/html/document/src -I../../../content/svg/content/src -I../../../layout/style -I../../../layout/base -I../../../dom/base -I../../../xpcom/ds  -I../../../js/xpconnect/src -I. -I../../../dist/include  -I/usr/include/nspr -I/usr/include/nss      -fPIC  -pedantic -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wno-ctor-dtor-privacy -Wno-overlength-strings -Wno-invalid-offsetof -Wno-variadic-macros -Wcast-align -Wno-long-long -march=core2 -fPIC -DPIC -pipe -O2 -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -std=gnu++0x -pthread -pipe  -DNDEBUG -DTRIMMED -g -Os -freorder-blocks  -fomit-frame-pointer   -DMOZILLA_CLIENT -include ../../../mozilla-config.h -MD -MF .deps/dom_quickstubs.o.pp /usr/src/thunderbird-17.0.6/comm-esr17/mozilla/js/xpconnect/src/dom_quickstubs.cpp
In file included from ../../../dist/include/nsMediaDecoder.h:11:0,
                 from ../../../dist/include/nsHTMLMediaElement.h:11,
                 from ../../../dist/include/nsHTMLVideoElement.h:10,
                 from /usr/src/thunderbird-17.0.6/comm-esr17/mozilla/js/xpconnect/src/nsDOMQS.h:13,
                 from /usr/src/thunderbird-17.0.6/comm-esr17/mozilla/js/xpconnect/src/dom_quickstubs.cpp:152:
../../../dist/include/MediaStreamGraph.h:10:27: fatal error: nsAudioStream.h: No such file or directory
compilation terminated.

Before the error there are also many warnings about unused variable 'sink.'


Expected results:

Build should have succeeded.
Component: Build Config → Video/Audio
Product: Thunderbird → Core
Version: 17 → 17 Branch
Same problem in compiling Firefox 21.0
before building thunderbird,
do a "python client.py checkout"

this will update your comm-central repo and the mozilla-central repo included in it
it looks like they where not both updated as nsAudioStream is now replaced by AudioStream in the #include (file coming from moz-central)

It looks like it's fixed on moz-central, do a hg pull; hg update and rebuild it
Assignee: nobody → six.dsn
QA Contact: six.dsn
Does this actually fix the issue? Given the compiler flags used I don't think Audio should be included at all, whichever the filename.

If it does resolve the problem, (sorry unable to check on this box, can't do a pull,) will it be in the next releases of Thunderbird and Firefox?
Did you followed this doc: https://developer.mozilla.org/en-US/docs/Simple_Thunderbird_build?
You must set your ./configure parameters in /path/to/your/comm-central/repo/.mozconfig in ac_add_options
and then launch a ./mozilla/mach build

i'm building it on my testbox to see if there are some mistakes (but i'm working on the last revision so i don't think this should happen)
I did not for the Thunderbird build, ran configure and then make. For Firefox did use the .mozconfig and ran make -f client.mk build as described on https://developer.mozilla.org/en-US/docs/Configuring_Build_Options.

Same failure on both though.

Will attach the used .mozconfig for the Firefox build in a moment.
I just build Thunderbird with your config in .mozconfig, everything works fine.
I told you it comes from your repo that isn't update

http://hg.mozilla.org/mozilla-central/diff/bc91ce9bde76/content/media/MediaStreamGraph.h

Here comes the modification, it has been changed in 2012-11-14.
So there is no more bug
Status: UNCONFIRMED → RESOLVED
Closed: 11 years ago
Resolution: --- → INVALID
Okay, good, when will this be part of a new release? Both of Firefox and Thunderbird?
It's included since Firefox 19.
I dont know where did you get your sources but they are clearly not up to date. :)
Straight from http://releases.mozilla.org/pub/mozilla.org/firefox/releases/21.0/source/firefox-21.0.source.tar.bz2

Do you have alsa et al installed on your system? I don't that's why I pass all the --disable flags...
I just downloaded this tarball and the file "content/media/MediaStreamGraph.h" is correctly including AudioStream.h

can you look at this file and see at line 10 if it's including "AudioStream.h" or "nsAudioStream.h"

I guess you might have a conflict with an older version?
Try to remove completly the folder and unter again the tarball and look at the file "content/media/MediaStreamGraph.h", you should see #include "AudioStream.h" at line:10
Just checked in Thunderbird and it is indeed including nsAudioStream.h, I guess the latest Thunderbird release doesn't have that fix yet.

The Firefox failure is slightly different:

In file included from ../../../dist/include/nsHTMLVideoElement.h:10:0,
                 from /usr/src/firefox-21.0/mozilla-release/js/xpconnect/src/nsDOMQS.h:15,
                 from /usr/src/firefox-21.0/mozilla-release/firefox-build/js/xpconnect/src/dom_quickstubs.cpp:102:
../../../dist/include/nsHTMLMediaElement.h:19:25: fatal error: AudioStream.h: No such file or directory
compilation terminated.
Ok i guess i got an idea, the thing is that includes are moved from their original folder to $OBJDIR/dist/include, but as your configure is excluding them, they are not moved and so are not found during build.
i will give it a try asap :)
Status: RESOLVED → REOPENED
Ever confirmed: true
Resolution: INVALID → ---
Ok i found something that might help you: https://bugzilla.mozilla.org/show_bug.cgi?id=852401

You just have to save the patch that is submitted in this bug
$ wget https://bug852401.bugzilla.mozilla.org/attachment.cgi?id=726997 -o ~/moz.patch
$ cd /your/mozilla/sources/
$ patch -p1 < ~/moz.patch
delete your obj-folder and run again a make -f client.mk


do you have libasound2-dev installed?
because it looks like it's mandatory.
This patch fixes the issue for AudioStream.h, 
but if you don't have libasound2-dev, it will break later.
on my laptop build is going on and looks ok.
I took you're .mozconfig to be sure.
Status: REOPENED → RESOLVED
Closed: 11 years ago11 years ago
Resolution: --- → DUPLICATE
Depends on: 852401
It looks like the patch can't be fully appplied to Firefox21-release
It is included in Firefox22 which moves to RELEASED on Week of June 24, 2013.
Please fill a new bug if the problem occurs again with Firefox22.
I don't think Firefox or Thunderbird should require libasound, the whole point of all the --disable flags is to *not* require alsa et al. I don't think this is a solution.

Also, when can the aforementioned fix be expected in a Thunderbird release?
It only require libasound-dev, thoses are only includes.
Thunderbird includes the mozilla sources, so it should be fix in it too.
I'm not on a binary distro, there is no such thing as libasound-dev.
could you try this:
https://developer.mozilla.org/en-US/docs/Simple_Firefox_build/Linux_and_MacOS_build_preparation
Assignee: six.dsn → nobody
QA Contact: six.dsn
Version: 17 Branch → 21 Branch
I reopen it but in build-config component where it belongs
i don't think i can help you more on this.
Status: RESOLVED → REOPENED
Component: Video/Audio → Build Config
Resolution: DUPLICATE → ---
This might have been fixed by bug 857022.
Ted, yes that seems to be related and might fix my problems, my only worry is that it makes alsa a required dependency of firefox/thunderbird/etc. I've voiced that concern in the issue.
Hi back,

could you try again with the version 23 please?
to see if the patch is completly fixing this behaviour.

thanks,
Just tried building Firefox 23.0.1 with flags --disable-wave --disable-ogg --disable-webm --disable-dash and alsa-lib, libogg and yasm not installed (nor headers):

Problem 1: configure: error: yasm is a required build tool for this architecture when webm is enabled. You may either install yasm or --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.

  Okay, so the --disable-webm option doesn't work; installed yasm

Problem 2: /usr/src/firefox-23.0.1/mozilla-release/media/libvorbis/lib/vorbis_block.c:24:21: fatal error: ogg/ogg.h: No such file or directory
compilation terminated.

  Nope, --disable-ogg doesn't work properly either; installed libogg

Problem 3: n file included from /usr/src/firefox-23.0.1/mozilla-release/media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_mixer_manag
er_alsa_linux.h:19:0,
                 from /usr/src/firefox-23.0.1/mozilla-release/media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_device_alsa
_linux.h:16,
                 from /usr/src/firefox-23.0.1/mozilla-release/media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc:38
:
../../../../../../dist/system_wrappers/alsa/asoundlib.h:3:33: fatal error: alsa/asoundlib.h: No such file or directory

  So it seems that Firefox is still using alsa headers even though --disable-wave is passed.

Looks like nothing has changed, from a user perspective that is.
According to: https://developer.mozilla.org/en-US/docs/Yasm
you need to add 
ac_add_options --disable-libjpeg-turbo
to your mozconfig to build without yasm.
Could you uninstall yasm and try again?
this won't fix the alsa issue but it should be ok for the yasm configure error.
Status: REOPENED → NEW
Flags: needinfo?(mozilla)
When passing --disable-libjpeg-turbo I still get the same errors on yasm:

checking MOZ_GIO_LIBS... -lgio-2.0 -lgobject-2.0 -lglib-2.0  
checking __attribute__ ((aligned ())) support... trying 64
64
configure: error: yasm is a required build tool for this architecture when webm is enabled. You may either install yasm or --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.

Also, is seems it has some problems with libjpeg8:

checking for jpeg_destroy_compress in -ljpeg... yes
configure: error: Insufficient JPEG library version for --with-system-jpeg
------ config.log ------
configure:14915: gcc -c -march=core2 -fPIC -DPIC -pipe -mno-avx -std=gnu99 -fgnu89-inline -fno-strict-aliasing -ffunction-sections -fdata-sections -pthread -I/usr/include/nspr  conftest.c 1>&5
configure:15227: checking for nss-config
configure:15262: checking for NSS - version >= 3.15
configure:15329: checking for YASM assembler
configure:15335: checking for yasm
configure:15393: checking for jpeg_destroy_compress in -ljpeg
configure:15412: gcc -o conftest -march=core2 -fPIC -DPIC -pipe -mno-avx -std=gnu99 -fgnu89-inline -fno-strict-aliasing -ffunction-sections -fdata-sections -pthread  -lpthread -Wl,--as-needed -Wl,-z,noexecstack -Wl,--build-id conftest.c -ljpeg  -ldl  1>&5
configure:15452: gcc -c -march=core2 -fPIC -DPIC -pipe -mno-avx -std=gnu99 -fgnu89-inline -fno-strict-aliasing -ffunction-sections -fdata-sections -pthread  conftest.c 1>&5
configure: In function 'main':
configure:15446:23: error: #error "libjpeg-turbo JCS_EXTENSIONS required"
configure: failed program was:
#line 15437 "configure"
#include "confdefs.h"
 #include <stdio.h>
                     #include <sys/types.h>
                     #include <jpeglib.h> 
int main() {
 #if JPEG_LIB_VERSION < 62
                     #error "Insufficient JPEG library version (62 required)."
                     #endif
                     #ifndef JCS_EXTENSIONS
                     #error "libjpeg-turbo JCS_EXTENSIONS required"
                     #endif
                     
; return 0; }

The configure seems to indicate that the JPEG version is not sufficient, but JPEG_LIB_VERSION is defined as 80 in /usr/include/jpeglib.h and the config.log output seems to indicate that it is looking for libjpeg-turbo stuff even when --disable-jpeg-turbo was passed.
Flags: needinfo?(mozilla)
Product: Core → Firefox Build System
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: