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

NEW
Unassigned

Status

()

Core
Build Config
5 years ago
4 years ago

People

(Reporter: Remko van der Vossen, Unassigned)

Tracking

21 Branch
x86_64
Linux
Points:
---

Firefox Tracking Flags

(firefox23 affected)

Details

Attachments

(2 attachments)

(Reporter)

Description

5 years ago
Created attachment 753223 [details]
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
(Reporter)

Comment 1

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

Updated

5 years ago
Assignee: nobody → six.dsn
QA Contact: six.dsn
(Reporter)

Comment 3

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

Comment 5

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

Comment 6

5 years ago
Created attachment 754401 [details]
.mozconfig for Firefox build
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
Last Resolved: 5 years ago
Resolution: --- → INVALID
(Reporter)

Comment 8

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

Comment 10

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

Comment 12

5 years ago
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 :)

Updated

5 years ago
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.

Updated

5 years ago
Status: REOPENED → RESOLVED
Last Resolved: 5 years ago5 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 626229

Updated

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

Comment 17

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

Comment 19

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

Comment 23

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

Comment 25

4 years ago
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.

Updated

4 years ago
status-firefox23: --- → affected
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

Updated

4 years ago
Flags: needinfo?(mozilla)
(Reporter)

Comment 27

4 years ago
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)
You need to log in before you can comment on or make changes to this bug.