From Fedora Project Wiki
(Initial version) |
No edit summary |
||
Line 1: | Line 1: | ||
= Building RPM packages = | == Building RPM packages == | ||
=== 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!