Sunday, December 6, 2009

FUDCON '09

Since being in Software Build and Release , my interest for the Fedora community has been growing. This weekend I decided to attend FUDcon 2009. Unfortunately I was only able to attend a few sessions due to exams, final tests and final assignments being due the following week.

When I arrived at Seneca, I found my way to the registration desk to get my badge and shirt (great shirts by the way). I had met Tom "spot" Callaway who happens to package hundreds of packages.




The first session I attended was about Fedora Insight.

Fedora Insight
is a website part of Fedora (ofcourse) that is used to share news, publish articles and provides different marketing materials for Fedora. It is a way for people who are not in the Fedora Community to keep up to date with what's going on.

The second session I attended was Getting Started in the Fedora Community - Yaakov Nemoy & Bert Desmet

Yaakov and Bert discussed on what the Fedora Community was about, how to join, and why people should join. It was interesting to see other people who are interested about joining the community or who have recently just joined (like me). We discussed topics on the advantages to using Fedora in terms of security, why people in IT management position should be apart of the community, and several other related topics. I was able to find out how to communicate with the Fedora community and I also let everyone know about our Seneca Open Planet page and how it was the same concept like the Fedora Planet.

Thursday, December 3, 2009

Package info for SBR600

Just to ensure we don't have packages all over the place and to help me out with keeping the repo up to date please follow these 3 instructions:

1. If you've updated your packages, please increase the release number so I know which ones are the newest ones.

2. Please make sure you put your new packages in http://scotland.proximity.on.ca/DXR/dropoff/*i386*OR*x86_64*


3. Email me or ping me on IRC to let me know there is a new package in the dropoff directory


Thank you!

Regards,
Your favourite Repo Master

Wednesday, December 2, 2009

Repo Master....ing...Stage 2 | DXR-PROJECT

So after making the repository directories (i386, source, and x86_64) and collecting the rpm packages, I had a few more tasks to do as the REPO MASTER.


1. Create a script (my favorite thing in the world...not really lol) that will automate the creation of the repository data.

2. Create a repo rpm (that includes the gpg key).


So first thing is first, the oh so dreaded script (that ended up not being so bad). After using a template I found on the net and with a few adjustments (with the help of Chris Tyler)....VOILA!


#!/bin/sh

destdir="/var/www/html/DXR/"

rpm --addsign /var/www/html/DXR/*/*.rpm

for arch in i386 x86_64 source
do
cd ${destdir}/${arch}
createrepo .

done


After running script, everything seemed to be fine however I found a kink later on in the process (which I will mention further down).

To make the repo rpm, I created a spec file and edited the repo file to ensure the baseurl was set to $basearch.

Once I had my rpm file, I installed it on Australia to make sure the install worked. This is where the kink in the createrepo was noticed. Yum could not find the mirror because the url repeated itself like this http://scotland.proximity.on.ca/DXR/var/www/html/DXR/....

I ran a manual createrepo . in thr repo directories, ran a yum clean all on the client, and tried the install again on Australia.... success!

I have tried to run this on Germany, however when it comes to installing viewsource it doesnt seem to find the package, I will discuss this in my SBR600 class tomorrow.

For now, here is the link the repo rpm

Wednesday, November 18, 2009

Repo Master....ing... Stage 1

After being assigned the role of REPO MASTER for the DXR Project in SBR600, I began to make the repository.


The steps (repo notes from Chris Tyler)

A) Setup (1 time only)
1) gpg --gen-key

2) add to ~/.rpmmacros
%_signature gpg
%_gpg_name

3) gpg --export --armour keyid > i.e. RPM-GPG-KEY-[name]
--keyid =

B) Create Repository

1) create accessible directory
/var/www/html/ i.e. DXR

2) Put packages in that direcectory

3) rpm --addsign *.rpm
rpm -qip checks for signature

4) createrepo .

C) Create .repo file

1) put gpg public key* in /etc/pki/rpm-gpg/
*From Part A step 3

2) create .repo file in /etc/yum.repos.d


As of right now, only 2 out of the 3 packages have been added
to the repository.

Tuesday, November 10, 2009

G++ VS. Modified G++

The goal: Test build times between packaging using regular g++ and modified g++.

Getting the modified version of g++ required using a script called build-tools.sh. I executed this tool and it had created a tools directory in my home directory on the Australia machine.

The package I used to test g++ was abiword. I ran, time rpmbuild -ba abiword.spec a few times and recorded the times.

After renaming g++ I created a symbolic link using the following command:

su - c "ln -s /home/apvlahopoulos/tools/gcc-dehydra/installed/bin /[gc]++ /usr/bin"

Once the symbolic link was created, I ran the builds again...

I was having some install errors and then used

time QA_RPATHS=$[ 0x003f ] rpmbuild -ba abiword.spec

The results:

Test 1
Regular g++

real 9m33.509s

user 13m27.408s

sys 4m22.554s

Modified g++

real 7m23.409s

user 6m12.774s

sys 4m34.408s

Test 2
Regular g++

real 5m44.997s

user 5m37.223s

sys 3m44.992s

Modified g++

real 6m42.508s

user 10m36.408s

sys 3m15.561s

Test 3
Regular g++
real 5m56.887s

user 5m32.211s

sys 3m17.743s

Modified g++

real 7m7.550s
user 4m6.848s
sys 1m53.461s


Fedora Live CD...cool!

Never thought I would see the day, making a Fedora Live CD! I used different references, but the main one I stuck to was the HOW TO create a live cd page on Fedora's website (it was very helpful).

To personalize this live cd, I wanted to edit my own kickstart. Instead of starting from scratch, I found a bunch of kick start files in the /usr/share/spin-kickstarts / directory. I decided to use the fedora-livecd-desktop.ks. I copied this kickstart file to my home directory and began surgery!

I wanted to include my rpm that I had packaged a while ago into this, so I linked the rpm using...

repo --name="apvlahopoulos" --baseurl=http://scotland.proximity.on.ca/apvlahopoulos/repo

To avoid getting sued, I made sure I removed any fedora related branding and instead added the generic branding...

# add generic branding
generic-release
generic-logos
generic-release-notes

#Remove Fedora Branding
-fedora-release
-fedora-logos
-fedora-release-notes

I ran the livecd-creator command, and voilaaaaaaa!

Sunday, November 1, 2009

FSOSS '09

This year was the first time I attended FSOSS. Since being in Chris Tyler's Software Build and Release course, I decided it would be a good experience to get involved with the open source community. I immediately signed up to volunteer for the event!

I hope everyone who attended the event appreciated the informational pamphlets (because they took forever to fold! lol)




















Unfortunately I wasn't able to come to the event until lunch time. However, the good news was I made it just in time for lunch (the food was amazing). After talking to Catherine the day before about her presentation, I checked out part of her presentation about Canvas 3D JS Library. The reception was also enjoyable. I was able to talk about the event and about school overall with other students.

Tuesday, October 20, 2009

Repository - Done.

After the initial setup (gpg --gen-key), I added the macros to the ~/.rpmmacros file as needed. Once the key was generated successfully I was able to move on to the actual repository creation.

Using the class wiki and some help from Boris Chao's blog I began to create the repo.

I only faced one problem after the newly built rpm, and that was when I ran rpmlint. The error read "E: invalid-spec-name". After a quick google search I realized my spec file had to match the name of the "Name:" line in the actual spec file (DUH!) Sooo after running the build again and re running rpmlint...success!

Here is the results of the rpmlint:




And finally, here is the link to my RPM REPO.

Sunday, October 18, 2009

Successful Koji Build!

After a successful mock build... I followed the steps on the fedora wiki to upload and build in koji.

Since others prior to me have already explained what commands they used, here is just a screenshot of the results of my koji build.

Thursday, October 15, 2009

What the MOCK!

After several days of struggling, I have finally successfully built my package (wireshark) in mock.

First problem: required flex
Solution: added flex under the build requires in my spec file.

Just when I thought everything was okay, I find out I had to take a step back. My %files section of my spec file was incomplete. After reading up on it and getting much needed help from Prof. Tyler, I added the required macros that would grab all the files I needed for that section.

Finally, I built again without mock (rpmbuild -ba wireshark.spec) and had a successful build. I ran rpmlint to ensure no errors (which there weren't).

NOW that I was back on track, I copied my src rpm onto the CDOT machine (Scotland) and ran the mock build.

SUCCESS!

Next up... KOJI!

Wednesday, October 14, 2009

Testing -j value - Faster is better!

The task: to test the -j value when it came to building a package to see which value was optimal on a specific CDOT machine.

I was assigned the Australia machine and the package I built was coreutils.

The script:
for ((j=5; j<=9; j++)) do mv ~/.rpmmacros ~/.rpmmacros.old grep -v smp_flags ~/.rpmmacros.old >~/.rpmmacros
echo "%_smp_mflags -j$j" >>~/.rpmmacros

for ((x=1; x<=3; x++)) do echo "Time for j value $j Number of Tries: $x" >> value.log
/usr/bin/time -f "%e:$U:%s" -o value.log -a rpmbuild --rebuild coreutils-6.12-20.fc10.src.rpm

done

done


The script runs a loop to try values 5 - 9 and runs the build multiple times while outputting the results to a log file (value.log).

The results:

Time for j value 5 Number of Tries: 1
279.45::0
Time for j value 5 Number of Tries: 2
218.96::0
Time for j value 5 Number of Tries: 3
232.26::0
Time for j value 6 Number of Tries: 1
221.72::0
Time for j value 6 Number of Tries: 2
217.99::0
Time for j value 6 Number of Tries: 3
232.01::0
Time for j value 7 Number of Tries: 1
224.02::0
Time for j value 7 Number of Tries: 2
229.97::0
Time for j value 7 Number of Tries: 3
220.06::0
Time for j value 8 Number of Tries: 1
222.91::0
Time for j value 8 Number of Tries: 2
216.99::0
Time for j value 8 Number of Tries: 3
229.98::0
Time for j value 9 Number of Tries: 1
253.05::0
Time for j value 9 Number of Tries: 2
232.96::0
Time for j value 9 Number of Tries: 3
217.98::0


As you can see the differences in time aren't that different, the only time it showed any significant difference in speed was between values 8 and 9. The results of values 5-7 are pretty similar.

Monday, September 28, 2009

Packaging Wireshark

Packaging wireshark... what can I say, it didn't go smoothly but then again after reading some other posts on packaging, I quickly realized how lucky I had it.

I simply used Prof. Tyler's steps to making the SPEC file:

rpmdev-setuptree

1. get tarball, put in ~/rpmbuild/SOURCES
2. Go to ~/rpmbuild/SPECS
> RUN rpmdev-newspec [name]
3. Edit name.spec
4. rpmbuild -ba name.spec

I didn't have to change much on the spec file. At first all I did was fill in the meta data and ran the rpmbuild hoping on a miracle. Everything seemed to be going surprisingly smoothly...no errors (warnings, but no errors)...A few minutes later when everything was complete, I went to check my RPM and SRPM directories...and OFCOURSE nothing was there...

BACK to the drawing board I went (aka the SPEC file). I looked at some sample SPEC files on the net and realized a lot of them had

"make DESTDIR=$RPM_BUILD_ROOT install" under %install

So I changed mine to that, ran it again...and it seemed to go better. However with that all said and done, I couldn't get rpmlint and mock to work. I will be asking Prof. Tyler in class tomorrow to see why this was happening.

Tuesday, September 22, 2009

Kudos to Jesse Keating!

First off I would like to say... the teleconferencing room in the TEL building has the most comfortable chairs ever!

Anyways getting back to the important stuff, during our teleconference with Fedora's Release Engineer, Jesse Keating, we had learned all about what it's like to work for the Fedora Project and specifically what it means to be a Release Engineer.

As a Release Engineer he is responsible for organizing and managing Fedora's progress throughout all the release phases....and best of all... he does it all from home! His thorough explanation of what he does exactly, makes it clear, that he not only is good at what he does but really really likes his job!

I specifically asked Jesse a couple questions.
Question 1: What kind of resources do you use? It seems like you're the go-to-guy so what happens if you can't or are unsure of how to fix a problem?

His answer (in a nutshell): The best resource is the other fedora developers/packagers, google and other redhat engineers!
(for full answer see 33:46 of the recording)

Question 2: What kind of features is fedora incorporating that are making Fedora more mainstream?

His answer (in a nutshell): Easy use features to access things that normal users care about such as web browser, email, battery life, and fast boot up time.
(for full answer see 38:25 of the recording)

Check out the link below for all the Fedora releases.
http://fedoraproject.org/wiki/Releases

Monday, September 14, 2009

Configure - Quite the learning experience.

Last week, we were assigned the task of downloading source code and using the configure function for SBR600 while in SEC520 we were asked to download a sniffer (such as wireshark). I decided to kill two birds with one stone and download the source code for wireshark.

Once, downloaded (using wget [url]), I began to extract the tar file and then ran configure. Well, just my luck things stopped after about a dozen lines where I was getting an error message stating "C compiler cannot create executables" My first instinct was to google it...ofcourse. But instead I decided to get on the seneca IRC channel where I was helped out by a few people (thanks to those people btw).

I quickly learned that I required a package called binutils. After learning how to use sudo apt-get install [tab] (which became my saviour) I installed binutils but also required to install build-essentials (ubuntu's version of binutils...I think). Other packages were required throughout this process such as libpcap (and trust me...the list goes on for a while).

Another major issue I had was with the GTK+ version that was required. But that issue was solved by install libgtk2.0.

After dealing with much struggle and a mass amount of package installations, configure was complete. (yay!) I ran make and make install with smooth sailing. Lastly, I never thought running a program would make me so happy but running ./wireshark and having the program run put a smile on my face. :)

Tuesday, September 8, 2009

SBR600

apvlahopoulos>ctyler: ping

<ctyler>apvlahopoulos: pong

<apvlahopoulos>hi sir, just testing out freenode for sbr600, seems that everything is working

<ctyler>Cool! I was wondering who apvlahopoulos was. Suggestion: fill in your real name in your IRC client so people know who you are.

<ctyler>The default 'real name' in chatzilla is 'New Now Know How', which is not too informative :-)

=-=User mode for apvlahopoulos is now -e

=-=YOU are now known as Alex_Vlahopoulos

<ctyler>well, you can keep the nick, but add a real name. For example, whether I'm on here as 'ctyler' or 'DrOlgovie', my real name still shows as 'Chris Tyler'

<ctyler>Seen anyone else from sbr600 here?

* ctylersees Alex_Vlahopoulos in #fedora, great. You might also want to join #fedora-admin and #fedora-devel

<ctyler>hmm, I haven't used chatzilla in a while, sec

<ctyler>Alex_Vlahopoulos: Under Preferences>Identification>Description -- that's the field I meant

<ctyler>it shows up in a /whois

<ctyler>(or in most GUIs)


http://zenit.senecac.on.ca/wiki/index.php/User:Apvlahopoulos

https://fedoraproject.org/wiki/User:Apvlahopoulos