Monday, September 16, 2013

Compiling from source: the almost neverending story



Compiling less from source

First step Download the package
Second step: Extract the package from the tar ball
Third step: move to the folder and do a configure ./configure
Here is where the problem started. When I did ./configure it will start running but it would immediately tell me this error. 

“checking for working terminal libraries cannot find terminal libraries configure failed”

I look around the web and they say I need the ncurses package. So I do a yum install for ncurses to which it says that it is installed and up to date. I go ahead and try again as root just to be sure. The thing error showed up. After a few minutes of tinkering I decided to do a“yum install *curses*” since the configure output was referencing curses files like lxcurses and lncursesw.
The yum command prompts me to install 48 packages 10 related to curses and the rest for dependencies. I skim through the packages and I find ncurses-devel and I remember Chris doing something similar for wget so I yum install ncurses-devel and try configure again. Eureka configure finished without errors.

Next step I run and time make.

Note: Before I posted the specs of my desktop but I am currently compiling from my 5 year old laptop without ssd or anything fancy.  It is a Core 2 Duo P8100, 3 GB of DDR 2 Ram and a 250 GB HDD Spinning at 5400 RPM. I am dual booting Windows 7 and Fedora 19.

Less time:

real    0m5.928s
user    0m4.945s
sys    0m0.670s

After that from the source folder I run the command
./less README

And Less works perfectly


Now trying with GIMP This should be more challenging (So I said before starting)

I run ./configure and I get the following error

configure: error: Your intltool is too old.  You need intltool 0.40.1 or later.

I proceed to yum install intltool and configure keeps going and it stops at this error

checking for BABL... no
configure: error: Package requirements (babl >= 0.1.10) were not met:

No package 'babl' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.


I yum install babl and try again but it will still give the same error.
I sit back and wonder why if the package is installed it does not recognize it. Then I decide to try with babl-devel and it continues. I think *-devel is the magic combination haha.

I continued doing this with a few more packages until I hit gtk+
after yum installing it for gtk+ and gtk+-devel it was still complaining I checked the config.log and apparently the version from yum was pretty old and it needed 2.24 or newer. So I go to the GIMP website and Download gtk+ 3.8 and when I hit configure for GTK+ I run into other dependencies Issues.

This is the neverending story !!!.

First one on the list is pango which is already install so I hit pango-devel with yum. I keep solving the dependencies  until I hit gdk-pixbuf that yum would not resolve. So once again I go to compile this package from source. after resolving a few more dependencies I can install gdk-pixbuf and continue working on GTK+ which continues asking for dependencies. After I finished finding all the dependencies for GTK+ I went ahead and did a make  on GIMP which took several minutes. 

time to compile GIMP

real    11m48.668s
user    9m14.039s
sys    1m44.884s

After I open Gimp it tells me that it could not find some files thus I cannot use the program. I am guessing the cause is that I did not do the make install. Which is where it is looking for this files.

In total just for GIMP I probably spent around 4 hours and around 200-300 MB in dependencies and dependencies of dependencies. As Chris Tyler stated compiling can take long with bigger programs and that is the reality, 11 minutes to compile. Although it took a while, this taught to use understand and use yum better.

No comments:

Post a Comment