SPO600 Lab2 GNU Software

Hi all, I was assigned to work in my lab for my SPO600 class. Here is the outline of the specifications:

  1. Select a software package from the Free Software Foundation’s GNU Project.
  2. Build the software. You may need to install build dependencies (e.g., compilers, tools, and libraries); you can do this (and only this) as the root user.
  3. Test that it works.
  4. Select a second, open source software package that has a different license, and repeat the process with that software.
  5. Blog about the process, your results, your observations, and what you learned.

1. Select a software package from the Free Software Foundation’s GNU Project.

I Download 2 software package from the GNU website.

The first one is Bash.

Link: https://www.gnu.org/software/bash/


According to Bash website, Bash is the GNU Project’s shell. Bash is the Bourne Again SHell. Bash is an sh-compatible shell that incorporates useful features from the Korn shell (ksh) and C shell (csh). It is intended to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It offers functional improvements over sh for both programming and interactive use. In addition, most sh scripts can be run by Bash without modification.

The improvements offered by Bash include:

  • Command line editing
  • Unlimited size command history
  • Job Control
  • Shell Functions and Aliases
  • Indexed arrays of unlimited size
  • Integer arithmetic in any base from two to sixty-four


  1. I started with downloading the file from the website on my Fedora VM.
  2. I went to the folder and open the INSTALL file to find the instruction of the installation.
  3. Then executed the command “$ ./configure ” and it worked nicely.
  4. I followed the instruction to run “$ make ” and it worked
  5. The last step is to run “$ make install” But It was failed because of the installing folder require the permission from the root user so I replace the command with “$ sudo make install ” and it worked nicely again.
  6. I test the program by using these command “$ man bash” to check the manual page, “$ bash –help” to check the version and “$ whereis bash” to check the location.

GLib (aka GTK+)

Link: https://www.gtk.org/


According to gtk, GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off tools to complete application suites.


GTK+ has been developed for over a decade to be able to deliver the enticing features and superb performance that it brings to your application development. GTK+ is supported by a large community of developers and has core maintainers from companies such as Red Hat, Novell, Lanedo, Codethink, Endless Mobile and Intel.


  1. This one took a while to install because it required more dependencies such as cairo-gobject, pango, atk and gdk-pixbuf.
  2. So I ran “$ sudo yum install dependenciesName” for the dependencies in step 1
  3. Then ran some External dependencies: libepoxy, xlib, at-spi2-atk.
  4. After step 3, I had a completed “$ ./configure” command
  5. So I ran “$ make” and $ sudo make install”
  6. So for testing, I had the application be installed and go to the example folder of gtk and run the C program with “$ gcc hello-world.c -o base pkg-config --cflags --libs gtk+-3.0 "

Author: dannydat2005

Hello, Welcome to my blog site on programming and related development topics. At this point in time I’m relatively new to the professional developer world, but am getting my foothold into the arena. I’ve benefited greatly already by the contributions and documentation that others have provided on the web for jobs that have been asked of me, and this shall represent the beginnings of my contributions in return. My interests in programming that you may find topics on within this site include open source development.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s