On 07/06/2010 09:35 AM, Gregoire Gentil wrote:
On Tue, 2010-07-06 at 04:08 -0600, Gary Thomas wrote:
On 07/05/2010 10:27 PM, Gregoire Gentil wrote:
Any update? has anyone managed to do better for Chromium? Has anyone
tried the recipe that I sent to this mailing list a few days ago?
Yes, I've managed to build r50986 (up to date as of late last week) and
with some fiddling it works! There are a few rough spots I hope to smooth
out today and then I'll pass on the results.
[G2]. Congrats! That's interesting and good news if you managed to make
it work. Please send your recipe so that the mailing list can test.
Attached is the recipe for chromium, plus a work around I applied to
get it to build with a recent ffmpeg.
On Mon, 2010-06-28 at 10:27 -0600, Gary Thomas wrote:
On 06/24/2010 05:30 PM, Gregoire Gentil wrote:
This is my best try to upgrade Chromium but any page fails to load due
to an NSS problem. I suspect a conflict with Firefox. I have something
even more recent but it fails more pathetically...
I'm going to try building this soon, hopefully with a quite
up to date tree.
Looking at your recipe, it seems that the custom do_fetch_post()
is just doing what 'gclient sync' would do, but for a particular
revision (which I think gclient does support). Is there some
reason that you don't just use gclient?
BTW, I've not tried it, but I'm still pretty sure that do_fetch_post()
can just be a call to gclient sync.
[G2]. You can. A do_fetch would look like this:
do_fetch() {
if [ -f ${DL_DIR}/chromium_gclient_${SRCREV}.tbz2 ]; then
tar -xjpf -C ${WORKDIR}
else
gclient sync -r ${SRCREV}
cd ${WORKDIR}
tar -cjpf ${DL_DIR}/chromium_gclient_${SRCREV}.tbz2 .
fi
}
Needs some testing/tweaking. That may create a simpler recipe, but you
can't control the revision of each sub-project, you will end with a
massive tarball for Chromium in DL_DIR, and you need to create a
gclient-native recipe,
Thanks, I'll see if I can come up with something. I don't like
having to hard code the recipe to do what gclient sync does, even
though I wrote a script to simplify this process.
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
DESCRIPTION = "Google Chrome browser"
LICENSE = "BSD"
DEPENDS = "xextproto cairo nss ffmpeg gnome-keyring libxscrnsaver"
inherit gettext
SRCREV = "50986"
PV = "5.1+svnr${SRCREV}"
PR = "r1"
SRC_URI = "svn://src.chromium.org/svn/trunk/;module=src;proto=http \
git://git.chromium.org/cros.git;protocol=git;rev=5d0a00815f4376d86a1061022d5867b9a5ad28bd
\
http://src.chromium.org/svn/trunk/tools/depot_tools.tar.gz \
file://include.gypi \
file://gypi.patch;patch=1 \
"
S = "${WORKDIR}/src"
custom_cached_svn() {
oenote "Dealing with ${1}"
localpath="${DL_DIR}/chromium_`echo ${1} | sed -e
's|\/|\.|g'`_${3}.tbz2"
mkdir -p ${2}
if [ -f ${localpath} ]; then
oenote "Extracting ${localpath}"
tar -xpf ${localpath} -C ${2}
else
oenote "checkout and creating ${localpath}"
svn checkout http://${1} ${2} --revision ${3}
cd ${2}
tar -cjpf ${localpath} .
fi
}
do_fetch_post() {
custom_cached_svn "google-breakpad.googlecode.com/svn/trunk/src"
"${S}/breakpad/src" 609
custom_cached_svn "src.chromium.org/svn/trunk/deps/support"
"${S}/build/util/support" 20411
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/fast/events"
"${S}/chrome/test/data/layout_tests/LayoutTests/fast/events" 61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/fast/js/resources"
"${S}/chrome/test/data/layout_tests/LayoutTests/fast/js/resources" 61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/fast/workers"
"${S}/chrome/test/data/layout_tests/LayoutTests/fast/workers" 61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/http/tests/resources"
"${S}/chrome/test/data/layout_tests/LayoutTests/http/tests/resources" 61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/http/tests/workers"
"${S}/chrome/test/data/layout_tests/LayoutTests/http/tests/workers" 61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/http/tests/xmlhttprequest"
"${S}/chrome/test/data/layout_tests/LayoutTests/http/tests/xmlhttprequest" 61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/platform/chromium-mac/fast/events"
"${S}/chrome/test/data/layout_tests/LayoutTests/platform/chromium-mac/fast/events"
61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/platform/chromium-mac/http/tests/workers"
"${S}/chrome/test/data/layout_tests/LayoutTests/platform/chromium-mac/http/tests/workers"
61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/platform/chromium-mac/storage/domstorage"
"${S}/chrome/test/data/layout_tests/LayoutTests/platform/chromium-mac/storage/domstorage"
61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/platform/chromium-win/fast/events"
"${S}/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/fast/events"
61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/platform/chromium-win/fast/workers"
"${S}/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/fast/workers"
61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/platform/chromium-win/http/tests/workers"
"${S}/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/http/tests/workers"
61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/platform/chromium-win/storage/domstorage"
"${S}/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/storage/domstorage"
61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/platform/chromium/fast/workers"
"${S}/chrome/test/data/layout_tests/LayoutTests/platform/chromium/fast/workers"
61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/storage/domstorage"
"${S}/chrome/test/data/layout_tests/LayoutTests/storage/domstorage" 61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/LayoutTests/websocket/tests/workers"
"${S}/chrome/test/data/layout_tests/LayoutTests/websocket/tests/workers" 61998
custom_cached_svn
"src.chromium.org/svn/trunk/deps/reference_builds/chrome_linux"
"${S}/chrome/tools/test/reference_build/chrome_linux" 41515
custom_cached_svn "google-url.googlecode.com/svn/trunk"
"${S}/googleurl" 136
custom_cached_svn
"nativeclient.googlecode.com/svn/trunk/src/native_client" "${S}/native_client"
2555
custom_cached_svn "open-vcdiff.googlecode.com/svn/trunk"
"${S}/sdch/open-vcdiff" 28
custom_cached_svn "googletest.googlecode.com/svn/trunk"
"${S}/testing/gtest" 408
custom_cached_svn "src.chromium.org/svn/trunk/deps/third_party/WebKit"
"${S}/third_party/WebKit" 33467
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/JavaScriptCore"
"${S}/third_party/WebKit/JavaScriptCore" 61998
custom_cached_svn "svn.webkit.org/repository/webkit/trunk/LayoutTests"
"${S}/third_party/WebKit/LayoutTests" 61998
custom_cached_svn "svn.webkit.org/repository/webkit/trunk/WebCore"
"${S}/third_party/WebKit/WebCore" 61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/WebKit/chromium"
"${S}/third_party/WebKit/WebKit/chromium" 61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/WebKitTools/DumpRenderTree"
"${S}/third_party/WebKit/WebKitTools/DumpRenderTree" 61998
custom_cached_svn
"svn.webkit.org/repository/webkit/trunk/WebKitTools/Scripts"
"${S}/third_party/WebKit/WebKitTools/Scripts" 61998
custom_cached_svn "angleproject.googlecode.com/svn/trunk"
"${S}/third_party/angle" 337
custom_cached_svn
"google-cache-invalidation-api.googlecode.com/svn/trunk"
"${S}/third_party/cacheinvalidation/files" 21
custom_cached_svn
"src.chromium.org/svn/trunk/deps/third_party/ffmpeg/source"
"${S}/third_party/ffmpeg" 49485
custom_cached_svn
"src.chromium.org/svn/trunk/deps/third_party/hunspell128"
"${S}/third_party/hunspell" 50872
custom_cached_svn
"src.chromium.org/svn/trunk/deps/third_party/hunspell_dictionaries"
"${S}/third_party/hunspell_dictionaries" 50872
custom_cached_svn "src.chromium.org/svn/trunk/deps/third_party/icu42"
"${S}/third_party/icu" 50871
custom_cached_svn "libjingle.googlecode.com/svn/branches/nextsnap"
"${S}/third_party/libjingle/source" 21
custom_cached_svn
"src.chromium.org/svn/trunk/deps/third_party/libvpx/include"
"${S}/third_party/libvpx/include" 47941
custom_cached_svn
"src.chromium.org/svn/trunk/deps/third_party/libvpx/lib"
"${S}/third_party/libvpx/lib" 47941
custom_cached_svn "ots.googlecode.com/svn/trunk"
"${S}/third_party/ots" 30
custom_cached_svn "ppapi.googlecode.com/svn/trunk"
"${S}/third_party/ppapi" 79
custom_cached_svn "protobuf.googlecode.com/svn/trunk"
"${S}/third_party/protobuf2/src" 327
custom_cached_svn "skia.googlecode.com/svn/trunk/include"
"${S}/third_party/skia/include" 583
custom_cached_svn "skia.googlecode.com/svn/trunk/src"
"${S}/third_party/skia/src" 583
custom_cached_svn
"src.chromium.org/svn/trunk/deps/third_party/swig/Lib"
"${S}/third_party/swig/Lib" 40423
custom_cached_svn
"src.chromium.org/svn/trunk/deps/third_party/swig/linux"
"${S}/third_party/swig/linux" 40423
custom_cached_svn
"src.chromium.org/svn/trunk/deps/third_party/xdg-utils"
"${S}/third_party/xdg-utils" 29103
custom_cached_svn
"src.chromium.org/svn/trunk/deps/third_party/yasm/patched-yasm"
"${S}/third_party/yasm/source/patched-yasm" 50870
custom_cached_svn "gyp.googlecode.com/svn/trunk" "${S}/tools/gyp" 826
custom_cached_svn "src.chromium.org/svn/trunk/deps/page_cycler/acid3"
"${S}/tools/page_cycler/acid3" 19546
custom_cached_svn "v8.googlecode.com/svn/trunk" "${S}/v8" 4924
}
addtask fetch_post before do_unpack after do_fetch
do_configure() {
if [ ! -e ${S}/third_party/cros ] ; then
mv ${WORKDIR}/git ${S}/third_party/cros/
fi
cd ${WORKDIR}
export GYP_GENERATORS=make
export PATH=${WORKDIR}/depot_tools:"$PATH"
rm -f ${S}/tools/gyp/pylib/gyp/__init__.pyc
rm -f ${S}/tools/gyp/pylib/gyp/__init__.pyo
sed -e 's|__PATH__TO_BE_REPLACED__|"${WORKDIR}/include.gypi"|' -i
${S}/tools/gyp/pylib/gyp/__init__.py
sed -e "s|__PATH__TO_BE_REPLACED__||" -i ${WORKDIR}/include.gypi
if [ ! -e ${WORKDIR}/.gclient ] ; then
depot_tools/gclient config http://src.chromium.org/svn/trunk/src
fi
# This is the command lines to download everything but it's done in
do_fetch_post
#depot_tools/gclient sync --revision s...@${srcrev} --force --verbose
depot_tools/gclient runhooks --force
}
TARGET_CC_ARCH += "${LDFLAGS}"
# Fix problem with 'pure virtual method called', see
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41354
TARGET_CC_ARCH_arm += "-fno-tree-sink"
do_compile() {
cd ${S}
export CROSSTOOL=${CROSS_DIR}/bin/${TARGET_PREFIX}
export AR=${CROSSTOOL}ar
export AS=${CROSSTOOL}as
export RANLIB=${CROSSTOOL}ranlib
oe_runmake -r ${PARALLEL_MAKE} V=1 BUILDTYPE=Release chrome
}
do_install() {
install -d ${D}${bindir}
install -d ${D}${bindir}/chrome/
install -m 0755 ${S}/out/Release/chrome ${D}${bindir}/chrome/
install -m 0644 ${S}/out/Release/chrome.pak ${D}${bindir}/chrome/
install -m 0644 ${S}/out/Release/product_logo_48.png
${D}${bindir}/chrome/
install -m 0644 ${S}/out/Release/resources.pak ${D}${bindir}/chrome/
install -d ${D}${bindir}/chrome/locales/
install -m 0644 ${S}/out/Release/locales/en-US.pak
${D}${bindir}/chrome/locales
cp -a ${S}/out/Release/obj ${D}${bindir}/chrome/
cp -a ${S}/out/Release/obj.target ${D}${bindir}/chrome/
cp -a ${S}/out/Release/resources ${D}${bindir}/chrome/
find ${D}${bindir}/chrome/ -name "*.d" -delete
find ${D}${bindir}/chrome/ -name "*.o" -delete
find ${D}${bindir}/chrome/ -name "*.a" -delete
find ${D}${bindir}/chrome/ -name "*.cpp" -delete
find ${D}${bindir}/chrome/ -name "*.h" -delete
find ${D}${bindir}/chrome/ -name "*.cc" -delete
}
FILES_${PN} = "/usr/bin/chrome/"
FILES_${PN}-dbg = "/usr/bin/chrome/.debug/"
require ffmpeg.inc
DEPENDS += "schroedinger libgsm libvpx"
# When bumping SRCREV make sure you bump PR here and in dependant recipes
(gst-ffmpeg, gnash, omxil, etc) to account for SOVERSION changes
SRCREV = "23733"
PV = "0.6+${PR}+svnr${SRCPV}"
PR = "${INC_PR}.0"
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_angstrom = "1"
DEFAULT_PREFERENCE_shr = "1"
SRC_URI = "svn://svn.ffmpeg.org/ffmpeg/;module=trunk \
file://chromium.patch;patch=1 "
S = "${WORKDIR}/trunk"
B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fno-tree-vectorize
-fomit-frame-pointer -O4 -ffast-math"
BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
EXTRA_FFCONF_armv7a = "--cpu=cortex-a8"
EXTRA_FFCONF ?= ""
EXTRA_OECONF = " \
--enable-shared \
--enable-pthreads \
--disable-stripping \
--enable-gpl \
--enable-nonfree \
--enable-postproc \
\
--cross-prefix=${TARGET_PREFIX} \
--prefix=${prefix} \
\
--enable-x11grab \
--enable-libfaac \
--enable-libgsm \
--enable-libmp3lame \
--enable-libschroedinger \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--arch=${TARGET_ARCH} \
--target-os="linux" \
--enable-cross-compile \
--extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
--extra-ldflags="${TARGET_LDFLAGS}" \
--enable-hardcoded-tables \
${EXTRA_FFCONF} \
"
do_configure() {
sed -i -e s:'check_cflags -std=c99'::g ${S}/configure
mkdir -p ${B}
cd ${B}
${S}/configure ${EXTRA_OECONF}
sed -i -e s:Os:O4:g ${B}/config.h
}
Work around Google Chrome use of deprecated API
--- a/libavformat/avio.h 2010-07-02 03:58:03.000000000 -0600
+++ b/libavformat/avio.h 2010-07-08 09:44:45.000000000 -0600
@@ -277,7 +277,7 @@
/**
* @deprecated Use av_register_protocol2() instead.
*/
-attribute_deprecated int av_register_protocol(URLProtocol *protocol);
+/*attribute_deprecated*/ int av_register_protocol(URLProtocol *protocol);
#endif
/**
_______________________________________________
Angstrom-distro-devel mailing list
Angstrom-distro-devel@linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-devel