Troubleshooting Linux Open Source Software Compilation Issues

I wrote this post to address issues with custom software that you may want to install on your Linux system. One of the key reasons for using Open Source or Linux is that you have the ability to compile programs from source code. Many times you may want to modify parts of the source code to meet your own needs which is yet another reason to use Open Source code. Keeping in mind that you already know how to locate, download, and untar/gzip the source code. You must also know how to read the README/HOW-TO/INSTALL text files, they will provide important information on the packages that are required to compile or install the software.

Often Open Source software requires operating system, kernel, and other header files that are often referred to as include files to compile programs. If you are using the system without root privileges then you may need to put these required files somewhere in your home directory if they are not detected by the configure script or the compiler when you run the make command. If you are root they can be installed in the default locations and the system should be able to find them.

When installing software it is a good idea to keep track of what you are installing and where in some documentation so you will have a record of the installed software to refer to when you check for software updates or have issues with something. Documentation is a good thing and helpful in all cases.

Many times Open Source software that you download in source form could require other software libraries or other dependencies which are required for the program to compile and run.
You may find that options you choose when you configure the code may require additional software libraries and include files as well.

One common problem people have with compiling open source software is the fact that they may not have a supported OS as some projects get left in the wayside and lose programming support because developers lose interest or other various reasons the project stalls or becomes abandoned.

Ok, enough of the generalizations, hack up some code!!

Example 1:
Here are some of the first few basic issues you may encounter and the ways to resolve them:
[root@centos5_3-1 ntfs-3g-2009.4.4]# ./configure
checking for gcc… no
checking for cc… no
configure: error: no acceptable C compiler found in $PATH
See `config.log’ for more details.
You have no compiler installed. You will need to install gcc or cc the GNU Compiler.

Example 2:
[root@centos5_3-1 ntfs-3g-2009.4.4]# make
from /usr/lib/gcc/i386-redhat-linux/4.1.2/include/limits.h:11,
from fuse.c:22:
/usr/include/bits/local_lim.h:36:26: error: linux/limits.h: No such file or directory
fuse.c:2378: error: ‘ENOENT’ undeclared (first use in this function)
make[2]: *** [libfuse_lite_la-fuse.lo] Error 1
make[2]: Leaving directory `/space/ntfs-3g-2009.4.4/libfuse-lite’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/space/ntfs-3g-2009.4.4′
make: *** [all] Error 2
[root@centos5_3-1 ntfs-3g-2009.4]#

There will be many lines here so you will have to scroll back to determine what files are not found by the compiler so you can know what to add. Obviously here we see linux/limits.h is not there which means that the kernel headers or kernel source is not installed or located where the compiler and software thinks it should be.

This is an easy one to resolve, HOWEVER. It’s important to be sure that you have the kernel headers or kernel source code for the kernel you are running, you can view this with the command:
[root@centos5_3-1 ntfs-3g-2009.4.4]# uname -a
Linux centos5_3-1 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:47:32 EDT 2009 i686 i686 i386 GNU/Linux
This would mean that you need to install the 2.6.18-164.el5xen kernel headers, or source for the program to compile. You can see the headers in a directory like /usr/src/linux, /usr/include/linux, /usr/src/kernel, /usr/src/kernels/kernel-version.rel#

Example 3:
[root@centos5_3-1 2.4.9-ac6]# make
gcc -D__KERNEL__ -I/mnt/hda3/kernel/2.4.9-ac6/linux/include -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=athlon -DMODULE -DMODVERSIONS -include
/mnt/hda3/kernel/2.4.9-ac6/linux/include/linux/modversions.h -c -o
scsi_lib.o scsi_lib.c
scsi_lib.c: In function `__scsi_end_request’:
scsi_lib.c:379: `queued_sectors_Rc37b18c1′ undeclared (first use in this
function)
scsi_lib.c:379: (Each undeclared identifier is reported only once
scsi_lib.c:379: for each function it appears in.)
make[2]: *** [scsi_lib.o] Error 1
make[2]: Leaving directory `/mnt/hda3/kernel/2.4.9-ac6/linux/drivers/scsi’
make[1]: *** [_modsubdir_scsi] Error 2
make[1]: Leaving directory `/mnt/hda3/kernel/2.4.9-ac6/linux/drivers’
make: *** [_mod_drivers] Error 2

In this example you will see that we are trying to compile the kernel modules, this error would show us that the modversions.h file may be outdated and need to be recreated. There are many kernel how-to’s available on the net so I won’t cover how to do this now that you know what is wrong you may research how to resolve the issue.

Example 4:
You were able to get thru all the hoops to compile Firefox, go to start it up and get the following:
/usr/lib/firefox/firefox-bin: symbol lookup error: /usr/lib/libxml2.so.2: undefined symbol: gzopen64
Many errors which complain about undefined symbol are library related, some libraries may be installed but they are not the version which includes the symbol the software is using. It’s obvious to see that the libxml2 is at fault and may need to be upgraded.

These are just a few examples of issues you may run into. Now go download some source code, compile, and then run it!

Protect your private information for FREE!

After reading about a load of people on the internet getting Trojans and new Virus variations I felt I would do my part to educate people on keeping their computer safe for free by helping them to recognize some emails that contain links that would possibly infect them and or reveal private information.

It is common for an email to contain links to websites which you can click on to do various things. The purpose of this document is to help you recognize which you should or should not click.

The email may appear as it is from the bank you use, with images, logo’s and links. It may describe a condition where they require you to update your information within their system. You could easily see it’s a fake by using the mouse to mouse over the link and will see that it links to a site that is not the bank website. You can also right click the link and copy it then paste it to a text document. It is also possible that they may spoof the return address and it will look like a valid address.

Here are a few examples of some common emails that are sent out that are designed to help someone steal information for someone’s bank account. Some will come from shipping companies, others will come from banks or various institutions.

Fraudulent Email Example 1 (subject lines, and file names vary)
From: “Victoria Shafer”
Subject: UPS Tracking Number O44QW38TR
Hello!
We failed to deliver your postal package which was sent on the 22nd of June in time
because the addressee’s address is wrong.
Please print out the invoice copy attached and collect the package at our office.
United Parcel Service of America

file name=”De6181e50.zip”

Fraudulent Email Example 2 (subject lines vary)
Subject: Notification for Customer of e-mail address change
E-MAIL CHANGE NOTIFICATION
Dear Customer!
Thank you for banking online at bankname.com. Our records indicate that you recently added or made a change to one of your email address(es). This notification is to confirm that you initiated this change.
If you feel you have received this email in error and did not add or change your email address(es), please click here. https://www.bankname.com/
If you mouse over this ^^^ you will see it goes to http://bankname.bankname.info or some other link that is not associated with the bank.

Sincerely,
Online Banking Team

Fraudulent Email Example 3 (subject lines vary)
Subject: Regarding Your Bank name Account
Dear Bank name customer,
We have noticed that you experienced trouble logging into Bank name Online Banking.
After three unsuccessful attempts to access your account, your Bank name Online Profile has been locked. This has been done to secure your accounts and to protect your private information. Bank name is committed to making sure that your online transactions are secure.
To unlock your account, and verify your identity please follow this link and sign in.
https://www.bankname.com/
If you mouse over this ^^^ you will see it goes to http://bankname.bankname.info or some other link that is not associated with the bank.

Sincerely,
Bank name
Online Customer Service

Fraudulent Email Example 4 (subject lines vary)
Subject: Periodic Account Review
Dear customers:
Bank name is constantly working to increase security for all Online Banking users. To ensure the integrity of our online payment system, we periodically review accounts.
Your account might be place on restricted status. Restricted accounts continue to receive payments, but they are limited in their ability to send or withdraw funds.
To lift up this restriction, you need to login into your account (with your username or SSN and your password), then you have to complete our verification process. You must confirm your credit card details and your billing information as well. All restricted accounts have their billing information unconfirmed, meaning that you may no longer send money from your account until you have updated your billing information on file.
To initiate the billing update confirmation process, please follow the link bellow and fill in the necessary fields:
https://www.bankname.com/
If you mouse over this ^^^ you will see it goes to http://bankname.bankname.info or some other link that is not associated with the bank.

Thank you,
Bank name – Online Banking
Fraudulent Email Example 5 (subject lines vary)
Subject: Notification for Customer of e-mail address change
E-MAIL CHANGE NOTIFICATION
Dear Customer!
Thank you for banking online at bankname.com. Our records indicate that you recently added or made a change to one of your email address(es). This notification is to confirm that you initiated this change.
If you feel you have received this email in error and did not add or change your email address(es), please click here.
Sincerely,
Online Banking Team

Fraudulent Email Example 6 (subject lines vary)
Subject: Regarding Your Bank name Account
Dear Bank name customer,
We have noticed that you experienced trouble logging into Bank name Online Banking.
After three unsuccessful attempts to access your account, your Bank name Online Profile has been locked. This has been done to secure your accounts and to protect your private information. Bank name is committed to making sure that your online transactions are secure.
To unlock your account, and verify your identity please follow this link and sign in
https://www.bankname.com/
If you mouse over this ^^^ you will see it goes to http://bankname.bankname.info or some other link that is not associated with the bank.

Sincerely,
Bank name
Online Customer Service

Fraudulent Email Example 7 (subject lines vary)
Subject: Periodic Account Review
Dear customers:
Bank name is constantly working to increase security for all Online Banking users. To ensure the integrity of our online payment system, we periodically review accounts.
Your account might be place on restricted status. Restricted accounts continue to receive payments, but they are limited in their ability to send or withdraw funds.
To lift up this restriction, you need to login into your account (with your username or SSN and your password), then you have to complete our verification process. You must confirm your credit card details and your billing information as well. All restricted accounts have their billing information unconfirmed, meaning that you may no longer send money from your account until you have updated your billing information on file.
To initiate the billing update confirmation process, please follow the link bellow and fill in the necessary fields: https://www.bankname.com/
If you mouse over this ^^^ you will see it goes to http://bankname.bankname.info or some other link that is not associated with the bank.

Thank you,
Bank name – Online Banking