From Fedora Project Wiki
(Initial version)
 
No edit summary
Line 1: Line 1:
= Building RPM packages =  
== Building RPM packages ==
 
=== Prerequisites ===


== Prerequisites ==
We need to have some tools installed
We need to have some tools installed
  yum install rpmbuild rpmdevtools
  yum install rpmbuild rpmdevtools


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

Revision as of 13:06, 5 April 2009

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!