Monthly Archives: November 2008

First Core i7 Mozilla build. It was quick!


I finally got my desktop back together with a shiny new Intel Core i7 920, 6GB of DDR3. I haven’t overclocked anything yet and my entire build tree and operating system is on one 7200RPM drive. This thing is really fast for builds! I just built Firefox in less than 5 minutes. I did make -s -j16 -f client.mk clean then time make -s -j16 -f client.mk build and got the following output.
real 4m50.217s
user 2m44.854s
sys 0m55.450s

I used this as my mozconfig:
#John Ford's MozConfig file

ac_add_options --enable-application=browser
ac_add_options --disable-tests
ac_add_options --enable-official-branding

mk_add_options MOZ_CO_PROJECT=browser
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@

I should have done a build before I went to the new hardware as a comparison, but my old hardware is essentially the same as liberia and china over at CDOT.

Slow Progress

I am currently nailing down dependencies for JBoss. It is a lot slower than I originally had hoped. I am being impeded by my work flow as well as the size of the list of dependencies. My goal for my 0.2 release was to have all the dependencies fleshed out for JBoss but it is a lot slower than I thought it would be. The first obstacle is my workflow. Currently I find that the easiest way to work with the dependency table is to take the HTML from the wiki then load it into OpenOffice.org Calc then do my changes. After this I have to take the HTML output of OpenOffice.org then convert it back into wiki. I find that this is a very error prone procedure, so I try to do it as little as possible. Another problem with my workflow is that i am working on my laptop as my desktop is out of service right now. I am used to a lot larger of a screen and as a result I have to use virtual desktops. This slows me down as I forget where everything is and causes me to forget things when switching.

The actual task of finding dependencies is a slow task intrinsically. I find that there is no set package naming convention for jar files. One package will be vendor-project-package-version.jar and the next will be package-version.jar. Because of this it is very difficult to write a parser. To get the status of each dependency I am search in packagekit (or yum) for each package. It can be difficult sometimes to go from a jar file to figuring out where the upstream is. It is also confusing because there will be multiple versions of the same package (i.e. Apache Commons Collections). Fedora does include a specific version. I can see this will be an issue because it rarely matches with the version that Fedora has and there are multiple versions I will have to figure out which version JBoss is coded to itself and which versions it uses for the web applications it hosts. Once I have this information, I am trying to see which packages are repeated and naming them in a way which reflects this.

I am also still working on my ario package from my 0.1. I have gotten the package imported into the Fedora CVS and I am currently in the process of mock building it on F-8 through F-10 and once I finish this, I will push it live with bodhi. My second package which is required for me to become a full fledged packager, links, is currently at a bit of a road block because of conflicts. There are three versions of the “Links” browser, links1, links2 and elinks. Fedora only has elinks and as a result the package provides and obsoletes an unversioned links package. Because of Fedora’s naming conventions I wanted to name the package I was doing ‘links’ as it is the original links author continued efforts. Another contributor was saying that because a lot of scripts rely on elinks for processing on X-less servers my package should be links2 or glinks. Currently my package builds with X.org as a dependency for graphical mode. I am thinking of creating a sub package called ‘links-graphical’ which would allow for someone to have links with or without graphical support. I am wondering how this would work with the Fedora policies. The reason I am skeptical is that links compiles down to a single dynamically linking binary, so to have X capable and X incapable versions I’d have to ship two different binaries, one per package.

0.2 stuff:

Grokzilla – Code indexing revisited

I finally decided to write a script to automate setting up OpenGrok for Mozilla’s Mercurial Repository. This script creates a new repository the first time it is run then updates it on subsequent runs. The output of all programs is logged to files to aid in debugging. To set this script up on a local machine you will need to have a Java Application Server, such as JBoss or Tomcat and all related dependancies (Java), Exuberant Ctags, bash, OpenGrok and Mercurial. The details of this script are posted on my Wiki page for it and I can be reached on Mozilla’s IRC in #seneca as John64 if you need a little help with it.

I’d like to take this further if it is seen as valuable to the Mozilla community. Currently, OpenGrok considers all top level directories to be a project within it’s code. I can change this to be whatever needed. I have a sample instance running at http://142.204.133.36:8080/grokzilla/ but that might be up or down depending on many things. It is very possible for me to theme the web application and if there is interest in setting up this for community use I am willing to work on that. Should I file a bug on Mozilla’s Bugzilla to track this? I don’t know.

Installing VMWare 6.5 in Fedora 10

I decided to install VMware 6.5 on my Fedora Rawhide (just about at Fedora 10) machine. The binary kernel modules that are included with VMware are of little use to me because I don’t run an ancient version of the linux kernel. I used the .bundle installer to install the program. I let it run through and when it finished i was left with a problem of not being able to start VMware or VMware player because of the required kernel modules. You are going to need dependencies to build a kernel module. In Fedora, I beleive this is yum groupinstall "Development Tools" and yum install kernel-devel.

To fix this I ran the following commands:
cp /usr/lib/vmware/modules/source/ ~/vmware-modules – So as not to pollute the program’s installed versions of the module source.
For each tar file I untarred it and ran make in the resulting directory. This compiled all the modules i needed. After this, it is just a matter of copying the kernel modules to the appropriate place: sudo cp `find . -name "*.ko" | xargs` /lib/modules/`uname -r`/misc, running depmod -a and sudo /etc/init.d/vmware restart. After this, starting and running VMware now works. The downside to this is that you have to recompile the modules every time your kernel is updated, unless you write a script or turn those tar files into akmod rpm packages.

I don’t know if i like VMware more than VirtualBox or KVM, but if I do, I will consider writing some specfiles to automate this.

Also, if you are going to be running on a host with PulseAudio and want sound in your guests, vmwaredps-1.3.tar.gz is really helpful!