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

Reply via email to