On Tuesday 03 January 2012 04:23:13 [email protected] wrote:
> Greetings,
> 
> 
> 
> 
> I somehow managed to build google's Chrome browser the BLFS-way at the end
> of last year (a long time ago :).
> 
> The starting point for help and enlightenment is obviously "The Chromium
> Projects", 'dev.chromium.org/developers/how-tos/get-the-code'.
> 
> However, my overall build process didn't always go smoothly so I thought
> maybe some of these modest notes below might be of help for other
> adventurous souls who live life in the fast lane while always staying on
> the cutting edge.
> 
> -- You NEED
> 
> 1.  Firefox 9.0.1 (9.0 if you are a mac user :)
> Why: to download the Chrome tarball :)
> 
> 2.  the Chrome browser.
> Why: to get with the program.
> According to the latest news, Chrome has overtaken Firefox as no 2 browser
> and is in hot pursuit of IE (well, maybe not so hot, but the fateful 2025
> is looming ever closer).
> 
> So let's get to the nitty-gritty!
> 
> -- DETAILS (steps, pointers, etc.)
> 
> 1. As noted above, the basic build instructions are at the above URL.
> 
> >From there you can spread your sights and knowledge left and right, up and
> 
> down.  Including the download link.
> 
> First you download the tarball (about >= 1.2 GB). On a lousy DSL line like
> mine that means long, joyful, uninterrupted hours of watching football.
> 
> The tarball has a name like, r116078, which shows the latest development
> revision from which it was made.
> This is important because you are strongly urged to update the resulting
> tree to the latest release before starting the build. The development, as
> you will notice at the end of one of the links out there, runs fast and
> furious. (See below for the update how-to.)
> 
> Untar it somewhere. Carefully, especially as to the location. Unprivileged.
> 
> For personal reasons (whim), I rooted my decompressed Chrome tarball tree
> in 'usr/local/chromium'.
> The actual root is located at the only subdirectory of
> 'usr/local/chromium': 'src'.
> The whole tree takes up about 7 GB. The 'chrome' subdirectory weighs in at
> about 0.6 GB.
> (the build, when subdirectory 'out' is created, adds another half a gig
> to the whole "mozilla".)
> 
> 2. Before you start, you must also download a set of "tools":
>  /usr/local/depot_tools' (in my case.)
> Small, trivial, a non-event (compared to the tarball download and its
> unpacking at step 1. above)
> 
> According to documentation,
> "Chromium uses a package of scripts, the "depot_tools", to manage
> interaction with the Chromium source code repository and the Chromium
> development process."
> 
> 
> Most important tool (app) therein is 'gclient' (IMHO).
> The good (?) thing, "depot_tools" are updated automatically and
> periodically (like when you run 'gclient' - again, see below)
> 
> 3. Google uses (for reasons of their own) a project (version) control
> method which to me sounds like a dialect of "Subversion".
> 
> To update your tree to the latest revision before your actual build
> (strongly recommended) you run something like,
>   gclient sync'
> This make take a while depending on how behind you are and how busy they
> were.
> 
> To check out Chromium you type:
>   'gclient config <URL_of_Chromium_svn>'
> They recommend to start with the tarball and then to update it (fully or
> partially), i.e., avoid this kind of full checkout.
> 
> 4. Google uses (again, for reasons of their own) a "configure" procedure
> called 'gyp_chromium' (this app is in the main tree; not in "tools").
> 
> The "in" files are called "*.gyp" and are all over the place (and updated
> as part of the update process; hence, another reason to be up-to-date).
> The "out"s (i.e. the resulting "Makefiles") are called "*.mk".
> I suppose you can futz around with the gyps, if you so desire (and need).
> Personally, I let them be for this, my first build.
> 
> Running 'gyp_chromium' is another non-event, about half a min. or so.
> 
> 5. Now, finally, to the BIG 'make' EVENT.
> 
> To create the "chrome" browser, you basically just type
>   make chrome   # add "Release" or "Debug" depending on your goals in life.
> 
> If successful, after about 90 min. you end up with a lovely new born (to
> enhance the celebratory mood of the New Year's Eve party):
> 
> alex[/usr/local/chromium/src]% ls -og out/Release/chrome
> -rwxr-xr-x 1 78790552 2011-12-31 19:41 out/Release/chrome
> 
> -- Additional NOTES
> 
> 6. There's no install step ('make install' or some such). This is it.
> What you find at 5. above is THE executable, so you deal with it
> accordingly.
> 
> 7. Chrome (Chromium) is very fussy about privileges (no root, please) and
> gets very happy when it finds your system in a clean, up-to-date state.
> 
> My GUESS here, before you attempt the build, you're supposed(?) to run a
> "dummy", test 'chrome' executable:
> 
> alex[] ls -og
> /usr/local/chromium/src/chrome/tools/test/reference_build/chrome_linux/chro
> me -rwxr-xr-x  61576000 ...
> 
> which is distributed (as a courtesy? ) as part of the main tarball.
> 
> 7a. If you run it in graphics mode (X11), it looks like a full-fledged
> chrome browser (build 89207 - as opposed to 115909, my "real" build), so
> you can see what to expect (or give up on building your own and use this
> demo build as a binary distribution - like for Ubuntu, and thereby express
> one more time your hate of and disdain for Micro$oft)
> 
> 
> 7b. If run in command mode (like where you'd attempt your build), it
> appears to display its gripes about what's inadequate with your system,
> such as old and/or missing libraries, packages and the like.
> The corollary, if the output is not "clean" (clean = no ugly message
> beyond the expected "cannot open display"), first do some work and
> straighten up your system until you feel you can fly right.
> 
> -- TODO (as they say)
> 
> 8. After the party music dies down, I'll play a little bit with the new
> browser, to get the hang of it; it appears to use a somewhat different
> paradigm (I like this word no end. I don't know exactly what is means, but
> I feel it adds a sorely needed touch of class to this post) which may
> require a little getting used to.
> 
> 9. This I feel is very important and higher priority.
> On the same machine, a Firefox build/install takes no more than ~ 35 min.
> My chrome build was, like I said, 90 min. or so.  A lot of bloat?
> (I'm fully aware, _my_ bloat is somebody else's freedom fighter - but still
> and all ...).
> 
> Most likely, there's plenty of stuff in there I will never need.
> With Firefox one uses those "--with"s and "--disable"s and you feel like
> you're in control.
> Here, without some different human intervention, 'make' traverses the whole
> tree you throw at it unimpeded and builds everything in sight with great
> gusto. I've been left with the uneasy feeling I compiled into this
> executable even Larry Page's kitchen sink.
> 
> At the very least I might try to prune the tree to the bare necessities.
> Playing with them gyp files shouldn't be a bad idea either, I figure.
> 
> Wishing everybody einen guten Rutsch ins neue Jahr,
> -- Alex
thanks for your imput. I had a go back in 2010 and had been meaning to post my 
efforts here.  This is what I did (on an  amd64-bit non-multilib cblfs 
(kde4.5.) setup):-

#-------- libtasn1-2.5
#- autoconf sources
sh configure \
CC="gcc -m64 -fPIC" \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \


#--build
make

#--install
su 
make install





#--------  GConf-2.28.1
#- autoconf sources
sh configure \
CC="gcc -m64 -fPIC" \
CXX="g++ -m64 -fPIC" \
LDFLAGS="-L$GTK2_PREFIX/lib -L$XORG_PREFIX/lib" \
CPPFLAGS="-I$GTK2_PREFIX/include -I$XORG_PREFIX/include" \
--prefix=$GTK2_PREFIX \
--sysconfdir=/etc/gnome \
--libexecdir=$GTK2_PREFIX/lib/GConf \
--mandir=/usr/share/man \

#--build
make
#--install
su
make install

#--------   depotools -download then install  as (for example)

echo "----------------------------------------------------------"
echo " installing  depot_tools in /usr/local/chrome"
echo "----------------------------------------------------------"


mkdir -v /usr/local/chrome
cd  /usr/local/chrome
tar xzvf  $SOURCES/depot_tools.tar.gz



echo "-----------------------------------------------------------"
echo "   put depot_tools in path"
echo "----------------------------------------------------------"

cat>/etc/profile.d/depot_tools.sh<<"EOF"
#-depot_tools for googleChrome

export PATH=/usr/local/chrome/depot_tools:$PATH
EOF


echo
echo "----------------------------------------------------------"
echo "  extracting chrome  tarball "
echo "----------------------------------------------------------"


tar xzvf chromium.r55850.tgz
mv -v  home  chromium.r55850


echo "----------------------------------------------------------"
echo "  running  bootstrap "
echo "----------------------------------------------------------"


cd   chromium.r55850/chrome-svn/tarball/chromium/src

export GYP_DEFINES=target_arch=x64
/usr/local/chrome/depot_tools/gclient runhooks --force


echo "----------------------------------------------------------"
echo "  running  make "
echo "----------------------------------------------------------"


make V=1 chrome BUILDTYPE=Release  -j2

#(the j2 is for a dual-core amdAthlonX2)



echo "----------------------------------------------------------"
echo "  running  tests "
echo "----------------------------------------------------------"


make base_unittests



#----------------------------------------------------------------

its been a while back (june 2010 ) and I cant remember why I needed the first 
two programs (if indeed I nneedem at all).  
----
Its runs well with adobeflash but I have not had the time to try it with 
gnash.

---
luxInteg
-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to