From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 6/9] firefox: Mozilla Web Browser
Date: Wed, 19 Sep 2012 08:03:50 +0200 [thread overview]
Message-ID: <50596046.9030009@mind.be> (raw)
In-Reply-To: <50592144.4050607@petroprogram.com>
On 09/19/12 03:35, Stefan Fr?berg wrote:
>
> 18.9.2012 1:31, Arnout Vandecappelle kirjoitti:
>>
>> [snip]
>>> diff --git a/package/firefox/Config.in b/package/firefox/Config.in
>>> new file mode 100644
>>> index 0000000..fbd4749
>>> --- /dev/null
>>> +++ b/package/firefox/Config.in
>>> @@ -0,0 +1,417 @@
>>> +config BR2_PACKAGE_FIREFOX
>>> + bool "firefox"
>>> + select BR2_PACKAGE_ALSA_LIB
>>> + select BR2_PACKAGE_CAIRO
>>> + select BR2_PACKAGE_CAIRO_TEE
>>> + select BR2_PACKAGE_FREETYPE
>>> + select BR2_PACKAGE_JPEG
>>> + select BR2_PACKAGE_LIBGTK2
>>
>> Without Yann's _AVAILABLE series, you need to explicitly
>> depend on the dependencies of libgtk2 (and cairo but
>> that's implied):
>>
>> depends on BR2_USE_WCHAR # glib2
>> depends on BR2_INSTALL_LIBSTDCPP # pango
>>
>> And there should be a comment to warn about it
>> if WCHAR and LIBSTDCPP are not available.
>>
> Uh???? Sorry but what is this new _AVAILABLE series you mentioned ?
If you don't know, never mind :-)
>>> + select BR2_PACKAGE_LIBFFI
>>> + select BR2_PACKAGE_LIBNSS
>>> + select BR2_PACKAGE_LIBNSPR
>>> + select BR2_PACKAGE_LIBPNG
>>
>> I thought the internal implementations of these three were used?
>>
> Yes, at currently nss, nspr and especially libpng (because it needs apng
> feature patch) internal versions are used but
> mind you that my version of buildroot is little outdated.
>
> So maybe buildroot versions of nss and nspr will now be correctly
> detected and linked against with firefox.
>
> At least what I think seeing from the mailing list is that nspr and
> nss(?) got some new changes (they were missing .pc files?).
> So maybe they work now.
Could you rebase against current master and recheck with the
buildroot nss/nspr in your next iteration?
[snip]
>>> +config BR2_PACKAGE_FIREFOX_ENABLE_DEBUG
>>> + bool "Enable debug build and Valgrind integration hooks"
>>> + select BR2_PACKAGE_VALGRIND if BR2_TOOLCHAIN_BUILDROOT&&
>>> BR2_GCC_ENABLE_TLS
>>
>> Let me get this clear: if you're using a glibc-based or
>> crosstool-NG-generated uclibc toolchain with TLS, valgrind.h
>> is not needed?
>>
>> In other words: shouldn't this just select valgrind unconditionally?
>>
> You might be right. I have always used only uclibc-based, buildroot
> provided toolchain.
> So in other words: I have no clue what will happen in other toolchains
It's easy enough to build-test with an external Sourcery toolchain
as well.
[snip]
>>> +config BR2_PACKAGE_FIREFOX_ULTRA_PARANOID
>>> + bool "Enable Ulta-paranoid settings"
>>
>> Do you think this option is useful for many buildroot users? I
>> think most users will let firefox run full-screen at boot time,
>> pointing to one and only one site, with no UI for changing URL.
>> An option to provide *that* would be useful :-)
>>
> You mean that WebM ? I think it's kinda cool option. :-)
> To watch videos without flash.
> But of course, being YouTube only it's usefulness is quite limited now....
No, I mean ultra-paranoid.
Remember that buildroot users (including yourself :-) can just
add a custom prefs.js to their skeleton, or add it post-build.
[snip]
>>> +config BR2_PACKAGE_FIREFOX_INSTALL_DEFAULT_EXTENSIONS
>>> + bool "Enable installing of selected default extensions"
>>> + help
>>> + This option will enable you to select default extensions to
>>> + be installed when building Firefox.
>>> +
>>> + Note: The selected extensions are only *installed*.
>>> + They are not *enabled* by default.
>>> + For that you have to manually enable them after starting you
>>> + freshly build Firefox.
>>
>> built.
>>
>> The logic is reversed here, if you ask me. INSTALL_DEFAULT_EXTENSIONS
>> should select the default extensions, but the default extensions
>> shouldn't
>> depend on it. Or, if the idea is to make a submenu for the extensions,
>> it should be a menuconfig. But since there are only four extensions, I
>> don't think it's worth making a menuconfig for that.
>>
> Yeah, that's what I had in mind. A menu option where user could decide
> if he/she
> want's any default extensions installed and then it would take him/her
> to list
> of extensions to install.
In that case: use 'menu' (I personally don't like menuconfig much, I
often forget to check the option before entering the menu and then you
just get an empty menu...).
>> I propose to just remove the DEFAULT_EXTENSIONS symbol.
[snip]
>>> +config BR2_PACKAGE_FIREFOX_PLUGIN_GNASH
>>> + source "package/gnash/Config.in"
>>
>> The config symbol should be inside the sourced Config.in. Also,
>> I think it should be included from packages/Config.in.
>>
> You mean that it should be possible to enable building gnash flash
> plugin outside of firefox ?
Yes. First of all, it's also a stand-alone executable IIRC.
And even if it is only a firefox plugin, you can make it
depends on BR2_PACKAGE_FIREFOX.
[snip]
>>> diff --git a/package/firefox/firefox-11.0-uintptr_t.patch
>>> b/package/firefox/firefox-11.0-uintptr_t.patch
>>> new file mode 100644
>>> index 0000000..559b4c7
>>> --- /dev/null
>>> +++ b/package/firefox/firefox-11.0-uintptr_t.patch
>>> @@ -0,0 +1,12 @@
>>> +diff -Naur firefox-11.0.org/gfx/qcms/qcmstypes.h
>>> firefox-11.0/gfx/qcms/qcmstypes.h
>>> +--- firefox-11.0.org/gfx/qcms/qcmstypes.h 2012-08-06
>>> 15:09:44.189994318 +0300
>>> ++++ firefox-11.0/gfx/qcms/qcmstypes.h 2012-08-06
>>> 23:35:38.339208022 +0300
>>> +@@ -27,7 +27,7 @@
>>> + #ifdef __OS2__
>>> + /* OS/2's stdlib typdefs uintptr_t. So we'll just include that so
>>> we don't collide */
>>> + #include<stdlib.h>
>>> +-#elif !defined(__intptr_t_defined)&& !defined(_UINTPTR_T_DEFINED)
>>> ++#elif !defined(__intptr_t_defined)&&
>>> !defined(_UINTPTR_T_DEFINED)&& !defined(__UCLIBC__)
>>> + typedef PRUptrdiff uintptr_t;
>>
>> Is this necessary? stdint.h defines __intptr_t_defined (at least in
>> 0.9.32)
>>
> I have 0.9.33 and still got some problems.
> But I will check it again.
Maybe stdint.h just isn't included (which means uintptr_t isn't
available either).
[snip]
>>> +define FIREFOX_ENABLE_DEBUG
>>> + echo "ac_add_options --disable-debug">> $(FIREFOX_DIR)/mozconfig
>>> + echo "ac_add_options --disable-debug-symbols">>
>>> $(FIREFOX_DIR)/mozconfig
>>> + echo "ac_add_options --enable-strip">> $(FIREFOX_DIR)/mozconfig
>>
>> We normally do stripping directly in the target/ directory,
>> so unstripped binaries are still available in the build
>> directory. So --disable-strip should be unconditional. Unless
>> there are non-executable files that should be stripped as well
>> (only executable files are stripped by buildroot).
>>
> Actually, at the very end of the installation process there is a long
> list of files
> that do not seem like normal executable files and in default (non-debug)
> build
> firefox strips them.
> But I have to check that again.
Buildroot strips files with the executable bit set, not only
normal executables.
[snip]
>>> + (cd $(@D); \
>>> + sed -i 's# ""##' browser/base/Makefile.in&& \
>>
>> Huh? That merits some comment to explain why it is needed...
>> Also it fits better in a POST_PATCH_HOOK than here.
>>
> Sorry, forgot to mention that sed line just removes unprintable control
> characters from the title bar.
That is really mysterious... I'll look at it again in your next
iteration.
[snip]
Regards,
Arnout
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286540
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
next prev parent reply other threads:[~2012-09-19 6:03 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-05 14:28 [Buildroot] firefox: a new package Stefan Fröberg
2012-09-05 14:28 ` [Buildroot] [PATCH 1/9] firefox: host-python dependency needs --enable-unicodedata Stefan Fröberg
2012-09-05 14:28 ` [Buildroot] [PATCH 2/9] firefox: valgrind dependency needs --enable-tls for debug build Stefan Fröberg
2012-09-11 22:04 ` Arnout Vandecappelle
2012-09-11 23:39 ` Stefan Fröberg
2012-09-13 5:49 ` Arnout Vandecappelle
2012-09-05 14:28 ` [Buildroot] [PATCH 3/9] firefox: sqlite dependency needs new compile-time options Stefan Fröberg
2012-09-11 21:51 ` Arnout Vandecappelle
2012-09-11 23:35 ` Stefan Fröberg
2012-09-05 14:28 ` [Buildroot] [PATCH 4/9] firefox: installing default extensions needs host-xmlstarlet dependency Stefan Fröberg
2012-09-05 14:29 ` [Buildroot] [PATCH 5/9] firefox: installing default extensions needs host-unzip dependency Stefan Fröberg
2012-09-11 22:24 ` Arnout Vandecappelle
2012-09-12 0:05 ` Stefan Fröberg
2012-09-13 5:56 ` Arnout Vandecappelle
2012-09-05 14:29 ` [Buildroot] [PATCH 6/9] firefox: Mozilla Web Browser Stefan Fröberg
2012-09-17 22:31 ` Arnout Vandecappelle
2012-09-18 15:48 ` Stefan Fröberg
2012-09-18 21:25 ` Arnout Vandecappelle
2012-09-19 1:39 ` Stefan Fröberg
2012-09-19 1:35 ` Stefan Fröberg
2012-09-19 6:03 ` Arnout Vandecappelle [this message]
2012-09-05 14:29 ` [Buildroot] [PATCH 7/9] firefox: GNU gnash flash plugin needs agg dependency Stefan Fröberg
2012-09-19 5:30 ` Arnout Vandecappelle
2012-09-05 14:29 ` [Buildroot] [PATCH 8/9] firefox: GNU gnash flash plugin needs gconf dependency Stefan Fröberg
2012-09-19 6:16 ` Arnout Vandecappelle
2012-09-05 14:29 ` [Buildroot] [PATCH 9/9] firefox: GNU gnash flash, an open source Adobe Flash player & plugin Stefan Fröberg
2012-10-20 15:55 ` Arnout Vandecappelle
2012-10-21 12:10 ` Stefan Fröberg
2012-10-23 16:42 ` Arnout Vandecappelle
2012-10-24 13:43 ` Stefan Fröberg
2012-10-24 20:43 ` Arnout Vandecappelle
2012-10-25 11:22 ` Stefan Fröberg
2013-05-03 22:11 ` [Buildroot] firefox: a new package Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50596046.9030009@mind.be \
--to=arnout@mind.be \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox