From Fedora Project Wiki

Building RPM packages

Prerequisites

We need to have some tools installed

yum install rpmbuild rpmdevtools

That's all so far, the rest will follow after the classroom

IRC Log

* spevack hands the microphone to cwickert for RPM Packaging -- https://fedoraproject.org/wiki/User:Cwickert/Building_RPM_packages_Classroom 13:30
cwickert ok, here we go... 13:30
... leave!#fedora-classroom -> jcapel() 13:30
Padhu1 ொம 13:30
Padhu1 ok 13:30
cwickert My name is Christoph Wickert and I'm your teacher for todays IRC classroom lesson on building RPM packages 13:30
mahesh hello to cwickert 13:30
cwickert hi mahesh 13:30
... join!#fedora-classroom -> zeroC(n=zeroc@unaffiliated/danielf) 13:30
cwickert We are not going into details, instead I want all of you to have your first RPM after this class 13:30
dash123 cwickert: goodevening teacher :) 13:30
... join!#fedora-classroom -> verdurin(n=verdurin@pod-88.dolphin-server.co.uk) 13:30
Padhu1 hi tutor 13:31
cwickert first, we need to have a couple of tools installed 13:31
cwickert please do a 13:31
cwickert yum groupinstall development-tools 13:31
cwickert if you don't have them installed already 13:31
mahesh done 13:31
dash123 done 13:31
cassmodiah done 13:31
cwickert cassmodiah: :) 13:31
cwickert cassmodiah already is a package maintainer, so he has all the necessary stuff installed 13:32
cassmodiah :-) correct! 13:32
ahmed-araby :) 13:32
cwickert and especially for RPM building we need some more tools 13:32
cwickert yum install rpmbuild rpmdevtools 13:32
cwickert rpmbuild is the command to build the package 13:33
cwickert rpmdevtools is a collection of handy utils 13:33
ahmed-araby is rpmbuild rpmdevtools as I think I've problem is rpmfusion ? 13:33
cwickert so while some are still installing stuff, let's talk about the basics 13:33
ahmed-araby *is enough ? 13:33
cwickert ahmed-araby: what exactly is your prob? 13:34
... join!#fedora-classroom -> sattam1(n=sattam@unaffiliated/thtoh) 13:34
ahmed-araby [Errno -1] Metadata file does not match checksum 13:34
cwickert ahmed-araby: you can ether do "yum clean all" or disable the rpmfusion repo for now 13:34
dash123 cwickert: i did that yesterday it said ther ain't such thing as rpmbuild,? 13:35
ahmed-araby I've already rpmdevtools & rpmbuild installed already 13:35
cwickert ahmed-araby: fine 13:35
... signoff!#fedora-classroom -> sattam(Nick collision from services.) 13:35
... nick!sattam1 -> sattam 13:35
cwickert dash123: where id it say that? in yum or from the command line? 13:35
cwickert s/id/did 13:36
dash123 http://www.pastie.org/437408: result of yum search 13:36
cwickert dash123: sorry, it's rpm-build 13:36
cwickert ok everybody, my bad 13:37
cwickert yum install rpm-build 13:37
dash123 ok...no worries 13:37
cwickert me is ashamed ;) 13:37
cwickert pk, let's go on 13:37
mahesh nothing... go ahead 13:37
cwickert any idea why we are building packages after all? 13:37
cwickert or what RPM actually means? 13:38
dash123 redhat package manager 13:38
mahesh RPM Package Manager 13:38
cwickert mharris: right 13:38
Padhu1 custom applications. am i right? 13:38
cwickert It used to stand for "Red Hat Package Manager", but got renamed since many other distributions are using RPM too 13:38
ahmed-araby for building Binary Packages from SOurce code 13:38
lwh to automatically install a bunch of stuff and possibly run things to set it up ? 13:38
ahmed-araby ready to use 13:38
... join!#fedora-classroom -> UsamaAkkad(n=Usama@unaffiliated/uaa) 13:38
cwickert ahmed-araby: exactly, ready to use packages 13:38
cwickert no need to compile them, but install them with a couple of mouseclicks 13:39
cwickert RPM has a database that keeps track of all files installed, so you can uninstall them later without orphaned files 13:39
cwickert The database is located in /var/lib/rpm/*db.* 13:39
cwickert RPM will also take care of providing all the dependencies of a package, verify it's integrity and so on 13:39
* ahmed-araby rises his hand 13:39
cwickert ahmed-araby: yes? 13:40
ahmed-araby why sqlite with in specific ? 13:40
ahmed-araby It's using sqlite right ? 13:40
... join!#fedora-classroom -> sadfag(n=alex@Rda6a.r.pppool.de) 13:40
Padhu1 very lite DB and easy to use 13:40
cwickert ahmed-araby: yes, the database is using sqlite 13:40
cwickert the database lists all files installed, e.g you can run "rpm -ql foo" and it will show you all files inside foo 13:41
cwickert so everybody has the tools installed now? 13:41
dash123 yes 13:41
openpercept yes 13:41
l0nwlf yes 13:41
cwickert ok 13:41
cassmodiah yes 13:41
ahmed-araby yes 13:42
cwickert one important thing is 13:42
cwickert NEVER build packages as root! 13:42
cwickert If a package has a stupid Makefile, you might accidentally overwrite files of your system. 13:42
mahesh yes 13:42
cwickert so we need to setup a rpm build tree for your user 13:42
cwickert we use rpmdev-setuptree from the rpmdevtools package to do that 13:43
cwickert just run rpmdev-setuptree 13:43
cassmodiah ? 13:43
cwickert it will create a folder rpmbuild inside your homedir 13:43
cwickert cassmodiah: yes please 13:43
cassmodiah cwickert do you think it's important to set up an extra user just for packaging? the fedora wiki doesn't give a hit, and the packagers are not agreed 13:43
cwickert cassmodiah: no, it's only usefull for fully automated packageing 13:43
cwickert but you won't need it 13:44
cassmodiah k, thx 13:44
... signoff!#fedora-classroom -> rjones("Leaving") 13:44
cwickert note to the rest of the class: by fedorawiki cassmodiah means fedorawiki.de, not the wiki at fedoraproject.org 13:44
cwickert now let's look inside the rpmnbuild folder 13:44
lwh that command doesn't exist , will this work on f9 ? 13:45
mahesh i was wondering about that, now clear 13:45
cwickert there are five subdirs inside 13:45
cwickert BUILD is where the builds are happening. Every package will create a subfolder <name>-<version> there 13:45
cwickert RPM is where the binary packages will be placed when they are ready 13:45
cwickert SOURCES is where we need to place the sources of which we build the packages! 13:45
mahesh ok 13:45
cwickert SPECS is for spec files 13:45
cwickert so what are spec files? any idea? 13:45
cassmodiah ! 13:46
dash123 specifications 13:46
dash123 ? 13:46
cassmodiah build reciepts :-) 13:46
mahesh SPECS are like the makefiles's it provides info to the package manager right? 13:46
cwickert cassmodiah: you be quiet please ;) you know all that stuff already 13:46
cwickert mharris: well said! 13:47
cwickert sorry, I meant mahesh 13:47
mahesh ok 13:47
cwickert so the spec has a set of instructions _how_ to build the package 13:47
cwickert so building RPMs means writing a spec first of all 13:47
cwickert ok, we continue with the folders first 13:48
cwickert SRPMS is for source RPMS. 13:48
cwickert any questions so far? 13:48
dash123 cwickert: i previously tried to get to the source code of some linuxdcpp.srpm and did these steps, shud i delete these and start afresh?? 'cause all my subdirs are filled with dcpp files 13:48
cwickert dash123: no problem 13:49
mahesh is the SRPMS built automatically or is it another process? 13:49
sattam whats the diffrent between SRPMS and source ? 13:50
cwickert mahesh: depends on how you call rpmbuild 13:50
mahesh i mean foo.src.rpm 13:50
mahesh ok 13:50
cwickert sattam: good question 13:50
cwickert the SRPM or source RPM contains the source tarball 13:50
cwickert as well as the spec 13:50
cwickert and patches, if there are any 13:50
cwickert so you can use the srpm to build binary rpms of it for different releases 13:51
cwickert sattam: got it? 13:51
sattam cwickert: yes , very clear 13:51
cwickert ok 13:51
mahesh so rpms are built from srpms? 13:51
cwickert mahesh: yes, you can do this 13:52
mahesh fine 13:52
cwickert but you can also do this in a single run of rpmbuild 13:52
cwickert depends how you call it 13:52
cwickert we'll come to that later 13:52
mahesh ok 13:52
cwickert first we need a spec 13:52
cwickert and of course we need a program to package 13:53
... join!#fedora-classroom -> megenius_(n=megenius@ner-as29666.alshamil.net.ae) 13:53
cwickert I have chosen gigolo from http://www.uvena.de/gigolo/ 13:53
cwickert it's already in Fedora, but nevermind 13:53
... join!#fedora-classroom -> sattam1(n=sattam@unaffiliated/thtoh) 13:53
mahesh ok 13:53
cwickert so everybody please go to http://www.uvena.de/gigolo/download.html 13:53
dash123 ok..which one to download? 13:54
cwickert and download the latest release 0.3.1 to your ~/rpmbuild/SOURCES folder 13:54
l0nwlf 0.3.1 ?? 13:54
... join!#fedora-classroom -> Fzza3a(i=29dd1066@gateway/web/ajax/mibbit.com/x-6ecf413d8a8c2284) 13:54
... leave!#fedora-classroom -> Fzza3a() 13:54
cwickert l0nwlf: yes: http://www.uvena.de/gigolo/download.html#gigolo-0-3-1 13:54
cwickert or http://files.uvena.de/gigolo/gigolo-0.3.1.tar.bz2 as direct link 13:55
dash123 cwickert: do we also need the gpg signature?? 13:55
cwickert nope 13:55
dash123 ok 13:55
cwickert we trust ourselves and upstream 13:55
cwickert :) 13:55
... signoff!#fedora-classroom -> sattam(Read error: 54 (Connection reset by peer)) 13:55
dash123 done 13:55
UsamaAkkad :) 13:55
cwickert ok, now we go to rpmbuild/SPECS 13:55
sattam1 http://files.uvena.de/gigolo/gigolo-0.3.1.tar.bz2 13:55
cwickert and run the command "rpmdev-newrpmspec gigolo" 13:55
cwickert sattam1: exactly 13:56
cwickert the command will create an empty specfile from a template 13:56
cwickert use an editor to edit it 13:56
mahesh ok 13:56
cwickert everybody has the spec file opened? 13:56
dash123 bash: rpmdev-newrpmspec: command not found 13:57
verdurin it's rpmdev-newspec 13:57
openpercept is it rpmdev-newspec or rpmdev-newrpmspec 13:57
openpercept ? 13:57
cwickert verdurin: right 13:57
cwickert got renamed recently 13:57
cwickert I'm still used to the old name 13:57
cwickert rpmdev-newspec is the new name 13:57
... signoff!#fedora-classroom -> marflow_afk(Read error: 110 (Connection timed out)) 13:57
cwickert so it's rpmdev-newspec gigolo 13:57
dash123 done 13:58
openpercept yeah done 13:58
cwickert ok, now let's take a look at that file 13:58
cwickert we go through the tags one by one 13:58
cwickert Name: this one is pretty trivial, it's "gigolo". Please use the notation of the source tarball 13:58
cwickert Version: 0.3.1 in our case 13:59
cwickert Release: leave it as is 13:59
* l0nwlf have a doubt ? 13:59
cwickert the version is from upstream while Release is from Fedora 13:59
cwickert so 1 is the first Fedora package 13:59
cwickert l0nwlf: question=? 14:00
l0nwlf Version is 'blank' not '0.3.1' in gigolo.spec 14:00
cwickert l0nwlf: yes, you need to enter 0.3.1 there as I said 14:00
cwickert Release is already filled and remains as is 14:00
l0nwlf oh , we need to _edit_ it 14:00
cwickert l0nwlf: yes 14:01
cwickert %{?dist} will be expanded to "fc10" or "fc11" 14:01
dash123 cwickert: can you tell us about how we decide version numbers?? 14:01
cwickert dash123: use the one from upstream 14:01
cwickert look at the tarball 14:01
dash123 ok 14:01
cwickert and for release you usually start with 1 14:02
... join!#fedora-classroom -> edouardp_(n=edouardp@ANantes-256-1-165-74.w90-25.abo.wanadoo.fr) 14:02
cwickert but threre are exceptions 14:02
cwickert for snapshots and betas etc 14:02
cwickert but we are not going to cover that since it is outlined in the wiki 14:02
cwickert next is the Group tag 14:02
cwickert oh no, I forgot Summary 14:03
cwickert Summary should be short and precise. Only keywords, now whole sentences, because this is what you see in PackageKit. 14:03
cwickert We can take this from the homepage 14:03
... signoff!#fedora-classroom -> nethad("Konversation terminated!") 14:03
... leave!#fedora-classroom -> lwh() 14:03
... join!#fedora-classroom -> nethad(n=thomas@82.117.4.47) 14:03
cwickert for example "GIO/GVFS management application" 14:03
cwickert now we come to Group 14:04
Padhu1 cwickert: some RPMs needed GPL Keys when try to install it. Is it possible to build like these? then How 14:04
cwickert Padhu1: later... 14:04
cwickert you mean gpg keys, right? 14:04
Padhu1 yes 14:05
cwickert signing is a different process after the build 14:05
cwickert lets continue with the spec 14:05
Padhu1 ok 14:05
cwickert please take a look at /usr/share/doc/rpm-4.6.0/GROUPS 14:05
mahesh explain about the gpg keys before the end of this session 14:05
cwickert mharris: will do 14:05
... signoff!#fedora-classroom -> ahmed-araby(Read error: 110 (Connection timed out)) 14:05
cwickert I think "User Interface/Desktops" fits best for our package 14:05
cwickert but you can choose anything you want from the list 14:06
cwickert License: inside the source tarball you will find a copy of the GPL named COPYING. It's version 2 of the license 14:06
cwickert so we use "GPLv2" for now, but we'll come back to that later 14:06
cwickert URL: The homepage of the program: http://www.uvena.de/gigolo 14:07
cwickert Source0: is the dowload link 14:07
cwickert so for us it's http://www.uvena.de/gigolo/download.html#gigolo-0-3-1 14:07
cwickert sorry 14:07
cwickert http://files.uvena.de/gigolo/gigolo-0.3.1.tar.bz2 14:07
cwickert needs to be the link to the file itself 14:08
cwickert Now comment out BuildRequires and Requires, we don't care about that right now but shoot into the dark instead :) 14:08
cwickert %description: we can take that from the homepage too 14:09
cwickert for example: Gigolo is a frontend to easily manage connections to remote filesystems using GIO/GVfs. It allows you to quickly connect/mount a remote filesystem and manage bookmarks of such. 14:09
cwickert You see: complete sentences with dots at the end. 14:09
... signoff!#fedora-classroom -> edouardp(Read error: 110 (Connection timed out)) 14:09
cwickert Any questions so far? 14:09
mahesh nope, its clear 14:09
cwickert has everybody filled all tags now? 14:10
dash123 what haapens if i choose some random group tag? 14:10
dash123 do i "have" to choose from th e/GROUPS? 14:10
cwickert dash123: yes 14:10
cwickert well, you can uses something different 14:10
cwickert I don't think rpmbuild will complain 14:11
cwickert but we in Fedora will :) 14:11
cwickert so stick with the list please 14:11
UsamaAkkad :D 14:11
dash123 ok 14:11
cwickert the group tag is not important any longer, as it is not used by packagekit 14:11
cwickert ok, now we can start our first build 14:12
nethad cwickert: i have a question, do i need to put " " around the strings, e.g. Licence: "GPLv2" or is it: Licence: GPLv2  ? 14:12
... nick!megenius_ -> meGenius 14:12
cwickert or at leastr an attempt to do so 14:12
cwickert nethad: no "" 14:12
cwickert just GPLv2 14:12
nethad ok 14:12
l0nwlf i have a doubt ? 14:12
cwickert l0nwlf: yes please 14:12
l0nwlf %prep , %setup ?? 14:12
cwickert ok, then I'll explain it 14:13
l0nwlf we'll leave it as it is 14:13
cwickert for now we can use what's in there 14:13
cwickert %prep ist for preparing 14:13
sattam1 cwickert: why you skip " BuildRoot " ? 14:13
cwickert sattam1: my bad 14:13
cwickert BuildRoot remains as is 14:14
cwickert it's the location where we are building the package 14:14
cwickert a temporary folder 14:14
cwickert ok sattam1? 14:14
sattam1 clear 14:14
cwickert ok, so %prep is for preparing 14:15
cwickert this means extractiong the source and applying patches if there are any 14:15
cwickert after that the actual build starts in %build 14:15
cwickert ok, just realized that I choose a bad example :( 14:16
cwickert because gigolgo uses war for building and not autotools 14:16
cwickert usually yu run ./configure && make 14:16
cwickert and make install 14:16
mahesh yes 14:17
cwickert so ./configure and make are the stuff in the %build section 14:17
cwickert after that the files are installed to a temporary location 14:17
cwickert during %install 14:17
cwickert waf bedomes more and more popular 14:18
cwickert so in our example we use waf instead of autotools for building 14:18
... signoff!#fedora-classroom -> nethad("Konversation terminated!") 14:18
dash123 cwickert: how did you get to know gigolo uses war/waf??experience? 14:18
cwickert so please remove %configure 14:19
cwickert make %{?_smp_mflags} 14:19
cwickert dash123: see the readme inside the tarball 14:19
dash123 ok 14:19
cwickert it contains instructions for building the package 14:19
cwickert the statement we use for building is at http://fpaste.org/paste/8014 14:19
l0nwlf we remove only these two i suppose 14:19
cwickert use this to replace the two lines 14:20
cwickert l0nwlf: right 14:20
... join!#fedora-classroom -> nethad(n=thomas@82.117.4.47) 14:20
cwickert actually this is only the configure 14:20
cwickert for building we need "./waf build" 14:20
cwickert so ./waf build replaces make %{?_smp_mflags} 14:21
cwickert so everybody has his %build section ready now? 14:21
dash123 yes 14:21
cwickert ok, then we start 14:21
cwickert rpmbuild -ba gigolo.spec 14:22
cwickert -ba means build all, binaries and source rpm 14:22
cwickert -bs means build source 14:22
cwickert and --bb build binary 14:22
UsamaAkkad build source mean srpm ? 14:23
cwickert UsamaAkkad: exactly 14:23
... signoff!#fedora-classroom -> linuxguru("Leaving") 14:23
cwickert so are you already running the rpmbuild? 14:23
cwickert anybody? 14:23
cwickert it will most likely stop with an error 14:23
dash123 yes i got errors 14:23
cwickert ok, dash123, tell me 14:24
nethad cwickert: yes, errors 14:24
l0nwlf error: line 8: Unknown tag: Version 2, June 1991 14:24
l0nwlf I copied all licence : and it's second line of licennse tag 14:24
dash123 http://fpaste.org/paste/8015 14:24
nethad my one seems to be about the waf command 14:24
cwickert l0nwlf: no, just insert GPL there 14:24
cwickert dash123: there seems to be a letter missing 14:25
sattam1 error: line 15: Too many names: %description Gigolo is a frontend to easily manage connections 14:25
cwickert needs to be "export" 14:25
dash123 and my spec file is this: http://fpaste.org/paste/8017 14:26
l0nwlf error: line 19: Too many names: %description my first RPM 14:26
l0nwlf %description is causing errors 14:27
cwickert l0nwlf needs a new line after description 14:27
cwickert all: I have posted what the head of the spec should look like at http://fpaste.org/paste/8018 14:27
cwickert it also contains some more things we'll come to later 14:27
... signoff!#fedora-classroom -> nethad(Remote closed the connection) 14:28
cwickert for those who have problems, I suggest to use the paste I provided 14:28
l0nwlf http://www.mibbit.com/pb/nmlavL 14:28
... signoff!#fedora-classroom -> GeroldKa(Read error: 113 (No route to host)) 14:28
cwickert l0nwlf: there is a typo 14:28
cwickert all: xport needs to be export, the e is missing 14:29
cwickert my bad, I missed that during copying 14:29
cwickert here is the correct version: http://fpaste.org/paste/8019 14:29
cwickert so, anybody running rpmbuild right now? 14:30
cwickert or where are the problems? 14:30
dash123 ah working now its checking for gcc, etc..ops error again 14:30
cwickert dash123: this was expected :) 14:30
cwickert these are missing build reuirements 14:31
l0nwlf what about %install , %clean , %files 14:31
cwickert dash123: can you please post the errors? 14:31
cwickert l0nwlf: later... 14:31
dash123 yes 14:31
openpercept :wq 14:31
openpercept oops 14:31
dash123 http://fpaste.org/paste/8020 14:31
l0nwlf http://www.mibbit.com/pb/1JR4Df 14:32
cwickert dash123: looks good so far, this is because we have not yet tweaked the %install section 14:32
cwickert l0nwlf: same for you 14:32
cwickert so basically the buold itself has worked for all of you 14:33
cwickert fine 14:33
cwickert not to %install 14:33
... signoff!#fedora-classroom -> icarus-c("Leaving") 14:33
cwickert the first line remains as is 14:33
cwickert rm -rf $RPM_BUILD_ROOT 14:33
cwickert is for cleaning up old stuff if there is any from a previpus build that failed 14:34
cwickert now instead of "make install DESTDIR=$RPM_BUILD_ROOT" we use waf again 14:34
cwickert so it becomes 14:34
cwickert DESTDIR=$RPM_BUILD_ROOT ./waf install 14:34
cwickert when you have changed that, you can re-run rpmbuild 14:34
... join!#fedora-classroom -> megenius_(n=megenius@ner-as30487.alshamil.net.ae) 14:35
dash123 cwickert: i do realise i didn't include ./waf build -v in %build will that cause problems later? 14:35
cwickert dash123: yes , then you did not build anything 14:35
cwickert because this is the counterpart to "make" 14:35
dash123 oh...ok sry 14:36
cwickert np 14:36
cwickert let's get back to http://fpaste.org/paste/8020 for a moment 14:36
@spevack cwickert: about 5 minutes left, FUI 14:36
@spevack er, FYI 14:36
cwickert spevack: thanks 14:36
cwickert everybody: you see these "checking for ..." messages, right= 14:37
cwickert ? 14:37
dash123 i got a bunch more errors after the correction: 14:37
cwickert this is where we get the buildquirements from 14:37
dash123 color coded in red 14:37
cwickert anybody successfully did the build? 14:37
cwickert until %install? 14:37
dash123 not me 14:37
dash123 let me copy your spec and try 14:38
cwickert dash123: please do 14:38
l0nwlf http://www.mibbit.com/pb/cCTnmG 14:38
l0nwlf here are my errors 14:38
cwickert l0nwlf: great 14:38
cwickert these were expected, because the %files section is empty 14:39
... join!#fedora-classroom -> raina(n=raina@pdpc/supporter/active/raina) 14:39
l0nwlf %clean, %files, %changelogs -> the three things still UNtouched 14:40
cwickert I have updated the spec at http://fpaste.org/paste/8021 14:40
cwickert %clean remains as is 14:40
cwickert and for %changelog you write something like 14:40
cwickert * Sun Apr 05 2009 Foo bari <foo@bar.com> - 0.3.1-1 14:41
cwickert - Initial attempt 14:41
cwickert let's have a look a the files section 14:41
cwickert /usr/bin/gigolo is unpackaged 14:42
cwickert this means it was build but not included in the rpm 14:42
cwickert so we add %{_bindir}/gigolo to the files section 14:42
... join!#fedora-classroom -> pabloa(n=pabloa@75.Red-88-28-8.staticIP.rima-tde.net) 14:43
cwickert do not hardcode /usr/bin, but use %{_bindir} instead 14:43
cwickert for a complete list of macros see http://fedoraproject.org/wiki/Packaging:RPMMacros 14:43
... join!#fedora-classroom -> megenius__(n=megenius@ner-as30487.alshamil.net.ae) 14:43
dash123 ok 14:44
cwickert so basically everthing that rpm complained about as unpacked needs to be inserted in the %files section 14:44
cwickert and that's basically it 14:44
l0nwlf http://www.mibbit.com/pb/rFHjef 14:44
... join!#fedora-classroom -> jyoti(n=Jyoti@117.97.157.3) 14:44
cwickert l0nwlf: fine 14:44
cwickert this is where we use %find_lang 14:45
cwickert it will automatically search for locales and include them 14:45
cwickert this is decribed in the wiki 14:45
cwickert https://fedoraproject.org/wiki/Packaging/Guidelines#Handling_Locale_Files 14:45
cwickert so now all errors should be fixed 14:46
cwickert and if somebody still has problems, contact me in private 14:46
cwickert because now the next class is about to start 14:46
dash123 ok... 14:46
cwickert I will be around in the chan for answers 14:46
@spevack ok cwickert, thanks so much for teaching this class. 14:46
* cassmodiah applauds cwickert 14:47
cwickert but these are al minor problems, I hope you understoood what it's about 14:47
@spevack we'll take a short break, and nirik will start on his Networking class at :52 14:47
grndplane Yes thanks for taking the time :-) 14:47
cwickert feel free to contact me 14:47
G__81 very good session cwickert :) 14:47
dash123 thanks cwickert 14:47
* dash123 bows down 14:47
* nirik waits in the wings ready to start in a bit. 14:47
cwickert thanks everybody for your time and intereest :) 14:47
openpercept thanks cwickert 14:47
Padhu1 Thanks 14:47

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!