SBR Project Plan

Testing alternate Web Browsers for the Raspberry Pi project

For this project, I will be looking at a number of different open source web browsers. My focus will mainly be on browsers that are light weight and efficient. I will first try these web browsers in a regular installation of fedora just to get a feel of how they operate and making note of their similarities and deferences.

To test these the browsers, I will create a number of VMs with minimum system resources. This will allow me to hopefully simulate the Raspberry Pi environment.

I will try and contact the development community for each browser and obtain their opinions as well as assistance. I have already looked at some of the packages that are available for some of the browsers. With the help of their receptive community, I am hoping to build and tune some of these browsers for the arm architecture.

I will also be working closely with other students who are working on optimizing the Raspberry Pi project, since I will be comparing the performance of these open source browsers to Firefox.

Here are some possible open source Web Browsers that I will be looking at:

Epiphany

http://projects.gnome.org/epiphany/

Netsurf

http://www.netsurf-browser.org/

Chromium

http://www.chromium.org/

Opera

http://www.opera.com/browser

Dooble

Midori

Advertisements

Building RPM

The first rpm I chose to build is hello for gnu. I chose this because it is simple, especially when I am still new at packaging rpms.

The first thing I did was try to install the package and see if it works, so I downloaded the tarball of hello from http://ftp.gnu.org/gnu/hello/, extracted and ran ./configure -> make -> make install.

After confirming the installation by running the hello command it was time to create my own package.

Here is what I did:

I ran these commands as root:

yum install development-tools

yum install fedora-packager

I exited root and ran:

rpmdev-setuptree

After this I changed my directory to ~/rpmbuild/SOURCES and ran:

wget http://ftp.gnu.org/gnu/hello/hello-2.7.tar.xz

Once I had the source file, I went into the ~/rpmbuild/SPECS directory and created a new spec file

vi hello.spec

To seek advice I consulted Jordan Cwang, a current CDOT employee. He told me to check out the SRPMs for more details. This was very helpful since I was able to use those to see actual working spec files.

A template spec file was already in place when I ran the command.

Here are the details of my spec file:

Name:           hello
Version:        2.7
Release:        14%{?dist}
Summary:        This is “Hello World” from GNU

License:        GPLv3+
URL:            http://ftp.gnu.org/gnu/hello
Source0:        http://ftp.gnu.org/gnu/hello/hello-2.7.tar.xz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires: gettext
Requires(post): info
Requires(preun): info

%description
This is to build my first package.

%prep
%setup -q

%build
%configure
make %{?_smp_mflags}

%install
make install DESTDIR=%{buildroot}
%find_lang %{name}
rm -f %{buildroot}/%{_infodir}/dir

%post
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :

%preun
if [ $1 = 0 ] ; then
/sbin/install-info –delete %{_infodir}/%{name}.info %{_infodir}/dir || :
fi

%files -f %{name}.lang
%{_bindir}/hello
%doc %{_mandir}/man1/hello.1.gz
%doc %{_infodir}/%{name}.info.gz

%changelog

After editing and saving my spec file, i used rpmbuild -ba hello.spec to build the package.

I also tested it under mock using:

mock -r fedora-14-i386 –rebuild ../SRPMS/hello-2.7-14.fc14.src.rpm

The process was able to complete successfully with an exit status of 0.

Using Koji:

To use Koji, I had to setup the connection first. I did this by running the commands

yum install fedora-packager

/usr/bin/fedora-packager-setup

During the process I had to enter my FAS2 account credentials and create a certificate to add into my web browser. After adding the certificate to my browser I was able to log in on the koji website.

To test my package with koji, I ran the command

koji build dist-f14 –scratch hello-2.7-14.fc14.src.rpm

The result of the command provided a url link in which I used to navigate to a web page with the status of my build. Koji was able to build my package with out any issue.

Creating a repo:

To create a repository for my rpm, the first thing I did was to create a GPG key using the command:

gpg –gen-key

After going through the process of generating the key, I edited the .rpmmacros file to include a valid email address. This is done by setting the %_gpg_name within the file to my email address.

Then I realized that I needed to make my rpm a different version, so I went back and redited it my spec file.

SPEC FILE version 2.8

Name:           hello
Version:        2.8
Release:        14%{?dist}
Summary:        This is “Hello World” from GNU

License:        GPLv3+
Source0:        http://localhost/%{name}/%{name}-%{version}.tar.xz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires: gettext
Requires(post): info
Requires(preun): info

%description
This is to build my first package.

%prep
%setup -q -n hello-2.7

%build
%configure
make %{?_smp_mflags}

%install
make install DESTDIR=%{buildroot}
%find_lang %{name}
rm -f %{buildroot}/%{_infodir}/dir

%post
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :

%preun
if [ $1 = 0 ] ; then
/sbin/install-info –delete %{_infodir}/%{name}.info %{_infodir}/dir || :
fi

%files -f %{name}.lang
%{_bindir}/hello
%doc %{_mandir}/man1/hello.1.gz
%doc %{_infodir}/%{name}.info.gz

%changelog

After successfully building this package, I signed it using the rpm –addsign command.

To make sure that others can access my rpms, I created a directory at /var/www/html/rpms. This ensures that when my web server is up and running, people will have access to my rpms.

I then ran the createrepo command to create the repository.

For the next step I created a new repo file in the /etc/yum.repos.d directory and pointed the gpgkey value to my own gpg key in the /etc/pki/rpm-gpg directory. And I also ran the gpg –export –armour command to use my email to generate a key.

At this step I have encountered some issues. I will update this blog when I make more progress. Thanks for reading my post for now!