Friday, April 16, 2010

Koji Daemon Builder

With help form a Paul's blog post I was able to complete the task.

The first thing I did was download the koji builder on the virtual arm machine

yum install koji-builder

Still working on the koji machine I edited the kojid.conf file in /etc/kojid.

The line below was edited

; The URL for the xmlrpc server


Then the line below was added

; the username of you arm machine

user = arm-001-003

The lines below were uncommented and edited

;configuration for SSL authentication

;client certificate

cert = /etc/kojid/arm-001-007.pem

;certificate of the CA that issued the client certificate

ca = /etc/kojid/koji_ca_cert.crt

;certificate of the CA that issued the HTTP server certificate

serverca = /etc/kojid/koji_ca_cert.crt

Now after editing the kojid.conf file the certificates were copied from the Hong Kong server to /etc/kojid

scp arm-001-007.pem root@arm-001-003:/etc/kojid

scp koji_ca_cert.crt root@arm-001-003:/etc/kojid

The kojid daemon will be started

service kojid start

There was no errors but the server was resized to 10G

  1. Shut down the arm machine "init 0"
  2. Located the arm image on Hong Kong to be resized in "/var/lib/libvirt/images/arm".
  3. Used the command "df -h" to see if there is space available.
  4. Provide the space and then resize the drive

dd if=/dev/zero bs=1M count=10000 >> rootfs-arm-f12-003

e2fsck -f rootfs-arm-f12-003

resize2fs rootfs-arm-f12-003

The server is now resized but not ready for use.

Now I had to completely stop and start the machine

  1. Stop the arm machine "virsh destroy arm-001-003"
  2. Start the arm machine "virsh start arm-001-003"

Now back to the arm machine and start the kojid daemon

service kojid start

Friday, April 9, 2010

Testing packages on a virtual ARM machine

I was given six packages to test on my arm machine. Listed below are the problems I encounted and how they were resolved.

Firstly I had to prepare the VM for testing by, creating a user account and then add myself to mock group with the command "usermod -aG mock [user name].

The command
time mock -r feroda-12-arm --rebuild [package]
was used to test all the packages. The first package I tested, had an error indicating that there were missing dependencies.

My second package tested successfully and so it would have to be copied to the Hong Kong server. I wanted to use the scp command to do this but couldn't because scp was not installed. I then installed ssh to allow scp.

When I tried testing the remaining four packages but it wouldn't compile. I got an error and after checking the build.log file in /var/lib/mock/fedora-12-arm. The errors indicated that there was "No space left on the device".

Using the command "df -h" I noticed that there was no space available. With the aid of Prof. Tyler(I haven't done this in a while) I was able to resize the drive using the steps below.
  1. Shut down the arm machine "init 0"
  2. Located the arm image on Hong Kong to be resized in "/var/lib/libvirt/images/arm".
  3. Used the command "df -h" to see if there is space available.
  4. Provide the space and then resize the drive
dd if=/dev/zero bs=1M count=4096 >> rootfs-arm-f12-[arm server]
e2fsck -f rootfs-arm-f12-[arm server]
resize2fs rootfs-arm-f12-[arm server]
The server is now resized but not ready for use.
Now I had to completely stop and start the machine
  1. Stop the arm machine "virsh destroy [machine name]"
  2. Start the arm machine "virsh start [machine name]"

I then resumed my testing. The next two packages tested without any problems. But there are two packages left that are giving me headaches.

Sunday, April 4, 2010

Creating the virtual arms

My team members and I worked on Setting up the VMs running the ARM image. My main task was to autostart all the VMs and create a table with all the VMs, their assigned ip addresses and the student assigned to each machine.

The command below executed as root to view all the virtual machines that were running
virsh list --all

and the command
virsh autostart [nameofmachine]
was used to autostart the machine. This command was executed for all the running VMs. (arm-001-001 to arm-001-008)

Signing RPM Packages

I encounted only one error when completing this exercise. Below are the commands in order that were executed:

1. gpg --gen-key

2. the lines below were added to ~/.rpmmacros
%_signature gpg
%_gpg_name [email address] (added your email address)

3. gpg --export --armor [email address] > [file] (file of your choice)

4. Create a directory in
Put your package into that directory

5. Sign the package with the command below
rpm --addsign yourrpmpackage.rpm

6. Create a repo directory
createrepo .

After executing all the commands below my package Xye can be dowloaded here.

When generating a key keep note of all your answers.

Friday, February 26, 2010

Testing in Mock and Koji


When testing there was only one error that kept on reoccurring indicating that SDL packages were missing from the spec file( which is BuildRequires). I had to query the first installed SDL packages to find out what was needed. In the end I had to list eight SDL packages so it could run in mock.

Oh! I had to run the command rpmbuild -bs every time a change was made to the original spec file. This was fun!

Below is the final output of the successful run.


Finally. I do not know what the problem was, but it worked. Using the commands below and Using the Koji Buid system from Fedora

- yum install fedora-packager
- /usr/bin/fedora-packager-setup

I got an error indicating that I needed a Certificate. I downloaded that certificate and the second command again. There was success.

Building the package with koji was easy to my surprise. I didn't get any errors. The command below did it

koji build --scratch dist-f10 xye-0.9.1-1.fc10.src.rpm

The got the lovely words I like to see completed successfully.

Saturday, February 13, 2010

Creating RPM packages

I created the rpm package for the package xye-0.9.1.tar.gz from Xye is an abstract puzzle game.

The packages rpm-build, rpmdevtools and rpmlint were installed. After installing the packages the command rpmdev-setuptree was executed to setup the RPM tree. I then proceeded with creating the RPM package.

yumdownloader --source xye [was executed to download the package.]
This package was then copied to ~/rpmbuild/SOURCES where the command rpmdev-newspec xye.0.9.1.tar.gz was executed to create the spec file. The newly created spec file was then copied to ~/rpmbuild/SPECS and renamed xye.spec.

Changes and lines were added to the spec file and then the command rmbuild -ba xye.spec was executed. There was success the binary files were created. The command rpmlint was executed on the following files in the directories ~/rpmbuild/SRPMS and ~/rpmbuild/RPMS/i386 with no errors.

Below is a link to the spec file

Wednesday, January 20, 2010

Installing Packages NLED and XYE

Installing 2 packages - NLED and another of my choice

Installing the "Neat Little EDitor" NLED. I downloaded the tar-ball package nled_2_52_src.tgz from Using the command tar xzfv nled_3_52_src.tgz I extracted the files from the tar-ball. Working forn the directory nled-2-52 the make command was executed. There were errors, but after researching the errors I realized the I needed to install the ncurses packages so the command yum install ncurses* was executed. The make command was executed again without errors. The command ./nled was executed to run the editor.

I then installed a Games/Entertainment package xye-0.9.1.tar.gz from The following commands were executed in order as they appeared tar xvfz xye-0.9.1.tar.gz and cd xye-0.9.1. The command ./configure while in the directory xye-0.9.1 and got the error that I was missing the SDL packages. The command yum install sdl* was executed and then the command ./configure was entered again without any errors. The following commands were then executed to compile the packages make and make install. After the packages compiled the command xye was executed to run the game.