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
