--- Log opened Sun Jul 13 20:55:30 2008
21:29 <@tuxmaniac> ==== Global Bug Jam Preparatory Sessions Day 2 begins ====
21:29 <@tuxmaniac> Hello All. Welcome to the Preparatory sessions!!! Its been a great day 1 here and I would like to thank you all for the wonderful support.
21:30 <@tuxmaniac> Can we have a roll call please/
21:30 <@tuxmaniac> ?
21:30  * tuxmaniac is Aanjhan
21:30  * punchagan is puneeth
21:30  * sumitc is Sumit
21:30  * shanka is Shashank
21:30  * pulsar is mehul ved
21:30 <@slytherin> no_mind: I am right here. I wanted to start at 2100 but I myself was on road.
21:30 -!- Soumya_ [n=Soumya@117.192.3.82] has joined #ubuntu-in-classroom
21:31 <@slytherin> Soumya: Is that soumyadip?
21:31 <@tuxmaniac> Before we go ahead with the sessions I would like to mention a few things.
21:31  * iNFiNiTE is Sunil
21:32 <@tuxmaniac> Please dont ask questions in this channel as it might affect the flow of the presenter and disturb the view contents. SO we take all questions in #ubuntu-in
21:33 <@tuxmaniac> I humbly request each one of you to tag your questions with a [question] tag so that it is easy to identify and paste it here during the QA breaks
21:33 <@tuxmaniac> I will be assisted by no_mind (if he doesnt mind) for the same
21:33 -!- mode/#ubuntu-in-classroom [+o no_mind] by ChanServ
21:34 <@tuxmaniac> A few annoincements I would like to make here too.
21:34 -!- hullap [n=____@unaffiliated/hullap] has joined #ubuntu-in-classroom
21:34 <@tuxmaniac> We will be organising several GUEST Sessions in the coming weeks
21:34 <@tuxmaniac> This will include Becoming a Ubuntu Member, Effective Packaging techniques, Effective Bug triaging etc from noted Ubuntu Contributors
21:35 <@tuxmaniac> Announcemnts of the same will be given on the mailing list as and when the confirmations from the GUESTS come through
21:35 <@tuxmaniac> So today is Packaging and I leave slytherin to take command from here
21:35 <@tuxmaniac> FYI. The sessions are being logged.
21:35 <@tuxmaniac> slytherin: All yours
21:36 <@slytherin> Let's start then.
21:36 <@slytherin> First of all I would like to welcome all and announce the agenda here.
21:36 <@slytherin> We will learn basics of packaging today and try the usual hello world of packaging.
21:37 <@slytherin> Now I do not claim to be expert at all in packaging.
21:37 <@slytherin> Also I am not an official Ubuntu/Debian developer. I am still learning. So if I make any mistakes please feel free to correct me in case you already know.
21:38 <@slytherin> So I will explain the process of packaging.
21:38 -!- riddle28 [i=ca992984@gateway/web/ajax/mibbit.com/x-f3c6618b007cb476] has joined #ubuntu-in-classroom
21:39 <@slytherin> As we all know the usual linux distribution is a combination of various open source software. Most of these software is only released in source format only.
21:39 <@slytherin> So packaging is a task by which software is converted in a usable form for user.
21:40 <@slytherin> The packages we retrieve form repositories are in final form. Ready to be installed.
21:40 <@slytherin> All the pain of conversion in this form is handled by packagers.
21:40 -!- Filled-Void [i=Biju@unaffiliated/Filled-Void] has joined #ubuntu-in-classroom
21:40 <@slytherin> Any doubts?
21:41 < hullap> no
21:41 <@slytherin> I guess not.
21:41 <@tuxmaniac> I guess not. I will rise a flag if there are any 
21:42 -!- QwertyM [n=spong@unaffiliated/qwertym] has joined #ubuntu-in-classroom
21:42 <@slytherin> So there are two types of packages. 1. A source package which is nothing but upstream tar ball with some additional files. 2. A binary package is the one in final form. In case of debian/ubuntu it is .deb file.
21:42 <@slytherin> SO we will see what kind of files are added.
21:43 <@slytherin> There are 4 most important files. Any source package will have them.
21:44 <@slytherin> 1. Copyright - This file specifies the copyright of the application. It also specifies who debianized the application, on what date and the copyright of packaging itself.
21:45 <@slytherin> 2. Control - This file specifies most important aspects of the package. It's name, the names of binary packages created from it and their description.Build dependencies, runtime dependencies, section etc.
21:46 <@slytherin> 3. Rules - It is nothing but a make file which tells how the package should be compiler, where does the binary and other files like images, help files should be installed.
21:47 <@slytherin> 4. Changelog - This file records all the changes made in packaging.
21:48 <@slytherin> These are a must files. There are some additional files which are optional in most cases.
21:48 <@slytherin> I will explain them as and when needed.
21:48 -!- Soumya [n=Soumya@117.192.2.8] has quit [Nick collision from services.]
21:48 -!- Soumya_ is now known as Soumya
21:48 <@tuxmaniac> question flag
21:48 <@slytherin> any doubts?
21:49 -!- QuizMasterAsh [n=Quiz_Mas@unaffiliated/quizmasterash] has joined #ubuntu-in-classroom
21:49 <@tuxmaniac> 21:48 < riddle28> [question] so which of these have source code
21:49 <@slytherin> riddle28: No, these files don't contain source code. These files contain instructions as to how to compile the application.
21:49 -!- skanda [n=skanda@pcp091813pcs.unl.edu] has joined #ubuntu-in-classroom
21:50 <@tuxmaniac> 21:49 < punchagan> [question] this list is for the source packages right? do they get carried over to the binary created from  it?
21:50 <@slytherin> punchagan: yes, id you opena .deb file with archive manager (right click), then you will see it contains to .gz files. One of them is control.gz which contains all the metadata.
21:50 < riddle28> k
21:51 < punchagan> ok slytherin
21:51 <@slytherin> Now lets open https://wiki.ubuntu.com/PackagingGuide/Complete so that I can explain format of the files
21:51 <@slytherin> And go to changelog section of the page.
21:52 <@slytherin> is there anyone who has not opened the page?
21:53 <@slytherin> Ok. I will explain the changelog now.
21:53 <@slytherin> Fiest line ...
21:54 <@slytherin> It contains four things, source package name, version, distribution and urgency of the update
21:54 <@slytherin> say you are packaging a program names hello then package name will be hello.
21:55 <@slytherin> Version has a particular format - <upstreamversion>-<debianrevision>ubuntu<ubunturevision>
21:55 <@slytherin> ex. 1.0-1ubuntu2
21:56 -!- hullap [n=____@unaffiliated/hullap] has quit [":|"]
21:56 <@slytherin> The ubuntu<n> part is added to differentiate packages in Ubuntu form the ones in Debian
21:56 -!- hullap [n=____@59.180.92.0] has joined #ubuntu-in-classroom
21:57 <@slytherin> ALso if a s/w id not yet packages in Debian and only in Ubuntu then the version will be -0ubuntu<n>
21:57  * tuxmaniac rises the question flag
21:58 <@slytherin> yes
21:58 <@tuxmaniac> 21:57 < shanka> [question]  is upstream version same as debian version?
21:58 -!- aanjhan [n=aanjhan@122.164.127.194] has joined #ubuntu-in-classroom
21:59 <@slytherin> shanka: no, upstream version is the actual version of software. Debian version indicates how many times you have made changes to packaging. When you package it first time it will be 1. When you change package it will be 2.
21:59 -!- kart_ [n=kart_@121.245.6.93] has joined #ubuntu-in-classroom
21:59 <@slytherin> shanka: Upstream version changes only when there is a new release of software
21:59 < shanka> hmm ok
21:59 <@tuxmaniac> 21:57 < riddle28> [question] what is this upstream version?
22:00 <@slytherin> riddle28: Upstream means the source form where your software is obtained. So let's say pidgin is at version 2.4.3, that is upstream version
22:01 <@tuxmaniac> no more Qs.
22:02 < riddle28> is it the current version? or the starting version
22:02 <@slytherin> Ok. Now let's see what next lines contain. Changes, changes and more changes.
22:02 <@slytherin> riddle28: Whichever version you are packaging
22:02 < riddle28> ?
22:03 < riddle28> k
22:03 <@slytherin> riddle28: Let's say you are packaging pidgin 2.4.0 and this is first time it is packaged in Ubuntu (not available in debian yet). Then it will be 2.4.0-0ubuntu1
22:04 <@slytherin> Now the changes recorded in changelog are as follows.
22:04 -!- _sumitc_ [n=Sumit@59.93.254.44] has joined #ubuntu-in-classroom
22:04 <@slytherin> Changes to build/runtime dependencies, addtion/removal of paches, changes to copyright, changes to rules file etc.
22:05 <@slytherin> No the last line specifies who did the change. The packager's name, email address and the date.
22:06 <@slytherin> ex. -- Onkar Shinde <onkarshinde@gmail.com>  Sun, 13 Jul 2008 22:06:16 +0530
22:06 <@slytherin> Date has to be in particular format and it can be obtained with command 'date -R'
22:08 <@tuxmaniac> 22:07 < pulsar> [question] what are the urgency levels?
22:08 <@slytherin> pulsar: urgency level specifies the urgency of update ti give user an idea how essential the update is.
22:08 < pulsar> all right. that's what I needed.
22:09 <@slytherin> One needs to sign a package when uploading it to repository. And the email address in changelog will be used to identify the key for signing.
22:09 <@tuxmaniac> 22:09 < shanka> [question] I just did a quick lookup on the pidgin package: in ubuntu it's called "1:2.4.1-1ubuntu2" where  2.4.1 must be the upstream version, the '.1' must be debian version. But what is the '1:' that precedes the  upstream version?
22:10 <@slytherin> kart_: Can you please answer that question. I am not entirely sure about answer.
22:10 < shanka> sorry typo must have been      ... '-1' must be debian version....
22:11 -!- rsa_md5 [n=droopy@117.194.1.175] has joined #ubuntu-in-classroom
22:12 <@slytherin> shanka: Let's kart_ come up with answer. We will continue till then.
22:12 < shanka> no problem
22:12 <@slytherin> Please note, yYou don't usually use a different key to sign the package than one specified in changelog, unless you are uploading a packages created by someone else.
22:13 < kart_> shanka: that is call, epoch
22:14 <@slytherin> kart_: Please explain what is epoch
22:14 < kart_> shanka: it is added to avoid mistakes in upstream versions
22:15 < shanka> ok
22:15 < kart_> shanka: sometime upstream release funny version numbers
22:15 < kart_> shanka: more about it, http://www.debian.org/doc/debian-policy/ch-controlfields.html
22:15 <@slytherin> Any more question about changelog?
22:15 < shanka> kart_: ok
22:16 <@tuxmaniac> slytherin: clarify about the upstream changelog and debian changelog
22:16 < kart_> shanka: and when you in doubt about which version number is greater, you can use dpkg --compare-version
22:17 < shanka> kart_: ok
22:17 <@slytherin> Right. Debian changelog only records changes in packages. In few rare cases it might record upstream changes and the bugs that got fixed by those changes.
22:17 <@slytherin> Let's move to control file section.
22:19 <@slytherin> The control file is divided in source and one or more binary sections.
22:19 <@slytherin> This is explanation of some control fields.
22:19 < kart_> slytherin: note: if new upstream version fixes any Debian/Ubuntu bugs, it is better to add what has been changed in upstream to fix those bugs in debian/changelog
22:20 < kart_> ok. move on..
22:20 <@slytherin> right
22:20 -!- QuizMasterAsh [n=Quiz_Mas@unaffiliated/quizmasterash] has left #ubuntu-in-classroom ["Leaving"]
22:20 <@slytherin> Source: - name of source package. Section: The section to which package belongs ex. devel, libs etc.
22:21 <@slytherin> Priority: Priority of the package for a user. Is it 'optional', 'extra', 'required' etc.
22:21 <@slytherin> Maintainer: Email address of maintainer, either a person or a team.
22:22 <@slytherin> Standards-Version: To which policy does the packaging comply to.
22:22 -!- riddle28 [i=ca992984@gateway/web/ajax/mibbit.com/x-f3c6618b007cb476] has quit ["http://www.mibbit.com ajax IRC Client"]
22:22 <@slytherin> Build-Depends: List of packages needed to build this software.
22:22 <@slytherin> Homepage: homepage of the software (recently added field)
22:22 <@slytherin> Is the source section clear?
22:23 <@tuxmaniac> nothing that I can see. Please proceed. I will rise the flag if any
22:23 <@tuxmaniac> 22:23 < kart_> tuxmaniac: what is best way to determine correct build-dep?
22:24  * slytherin takes a5 minute break
22:25  * slytherin is back
22:26 <@slytherin> kart_: If you go my way, I first add all the build dependencies specified by upstream Then I try to build package in pbuilder to be sure.
22:27 <@tuxmaniac> 22:27 <@tuxmaniac> [question] so what is pbuilder?
22:27 <@slytherin> Please note that it is possible to build the package right there in your local environment. But you may fail to add some build dependencies because you might not know all the packages currently installed.
22:28 <@slytherin> pbuilder is a tool which creates a build environment containing only basic tools, usually called chroot. When you build a package using pbuilder it is done inside chroot.
22:29 <@slytherin> So you can make sure if the package builds properly with all the dependencies you have specified and the with the rules file
22:29 <@slytherin> ex. . .
22:30 <@slytherin> There are multiple versions of java. A s/w may not build or work with all. If you have multiple versions of java installed on your machine and you try building package without pbuilder, you are not sure which version is needed exactly.
22:31 <@tuxmaniac> 22:30 < sumitc> [question] What is chroot?
22:32 <@slytherin> sumitc: chroot is a complete build environment packaged inside a .tgz file. Everytime you buidl a package, it is first copied inside chroot and built there. So your working environment does not have any +ve/-ve effect on build.
22:32 <@slytherin> sumitc: clear?
22:32 < sumitc> slytherin, got it
22:33 -!- riddle28 [i=ca992984@gateway/web/ajax/mibbit.com/x-3b7023273c747eb8] has joined #ubuntu-in-classroom
22:33 <@tuxmaniac> sumitc: it is like a "complete system" in itself. But just the very minimal packages installed. So that we get the exact build dependencies
22:34 <@tuxmaniac> 22:32 < punchagan> [question]  Standards-Version: To which policy does the packaging comply to. What are the policies?
22:34 < sumitc> tuxmaniac, so if a package can be built in chroot, it can be built anywhere?
22:34 <@tuxmaniac> sumitc: it *will* or *should* :-)
22:34 <@slytherin> punchagan: Polocies define format for various files, the information they should contain etc. More at - http://www.debian.org/doc/debian-policy/
22:34 < sumitc> alright
22:34 < punchagan> ok
22:35 <@slytherin> Ok. Next section in control file is binary section. This defines various binary packages that should be created out of the source.
22:36 <@slytherin> Package: The name of binary package ex. openoffice.org-writer
22:37 <@slytherin> Arch: On which architecture the package should be built. ex. i386, amd64, powerpc etc.
22:38 <@slytherin> When 'Arch' is 'any' it means it should be built on all architectures. When 'Arch' is 'all', it means the package is architecture independent. Ex. python programs, java programs, shell scripts etc.
22:39 <@tuxmaniac> 22:36 < punchagan> [question] what does pbuilder do other than creating a chroot for us. I mean what is the difference  between me creating a chroot myself and testing package and using pbuilder to do it?
22:40 <@slytherin> punchagan: I will be glad to know how will you create chroot yourself, because I have never done that. :-)
22:40 < punchagan> :P
22:40 <@tuxmaniac> 22:40 < pulsar> [question] what is difference between any and all? any means different packages for different archs? all is  one package for all arch?
22:41 <@slytherin> pulsar: spot on
22:41 <@slytherin> punchagan: When you use pbuilder it will not have any packages other than essential one unless you ask it to. So it will install build dependencies at runtime and remove then once package is built.
22:42 < pulsar> slytherin: ok.
22:42 < punchagan> ok.
22:42 <@slytherin> next part
22:42 <@slytherin> Depends: On which other packages does this software depend for running.
22:43 <@slytherin> There are other fields similar to Depends.
22:43 <@slytherin> Recommends: field specify which other packages enhance functionality of this software.
22:44 <@slytherin> Suggests: Specifies which other packages are nice to have. It does n;t mean any enhancement in functionality.
22:45 <@slytherin> ex. For totem, if you install gromit, it allows using the gromit plugin for annotations when presenting a video. So it is a Recommends
22:45 -!- hullap is now known as [DF]urDADA|o0
22:46 <@slytherin> Last field is Description. It is one line description followed by a detailed description.
22:47 -!- QwertyM [n=spong@unaffiliated/qwertym] has left #ubuntu-in-classroom ["Leaving"]
22:47 <@slytherin> Detailed description should have one space at the start of every line. A break in description is specified by one space followed by a dot ( .). The you can continue description on next line.
22:47 <@slytherin> any questions?
22:48 <@slytherin> Let's move to copyright.
22:49 <@slytherin> The copyright example given on that page is self explanatory. You all can read it and ask any question you might have.
22:49 <@tuxmaniac> 22:49 < sumitc> [question] Why are Suggests included?
22:50 <@slytherin> sumitc: Let's say you are installing libgtk2.0-dev which contains header files needed to compile program that uses GTK+ toolkit
22:50 < sumitc> yeah
22:51 <@slytherin> sumitc: It has a suggest 'libgtk2.0-doc' which is api documentation. Now api documentation is not at all necessary to compile program. But still you might need it at times.
22:52 < sumitc> what about when libraries are included in suggest instead of docs?
22:52 <@slytherin> sumitc: can you show me an example?
22:52 < sumitc> slytherin, I dont know, let me try. :)
22:53 <@slytherin> sumitc: let's discuss it later then.
22:53 < sumitc> so documents are generally included in the suggests field?
22:53 <@slytherin> sumitc: yes and that is the only example I can think of now. Will let you know any other later.
22:53 < sumitc> ok
22:53 <@slytherin> Does anyone have any questions about copyright?
22:54 <@tuxmaniac> not any that I can see on #ubuntu-in 
22:55 <@slytherin> Few notes about copyright.
22:55 <@slytherin> If there are any files which have different copyright than rest of the application the you must mention them clearly.
22:55 -!- [DF]urDADA|o0 [n=____@unaffiliated/hullap] has quit [Remote closed the connection]
22:56 <@slytherin> Also the license text inclusion is necessary only when it is using the license not already available in /usr/share/common-licences directory
22:57 < punchagan> ok
22:58 <@slytherin> I feel that directory name is wrong. kart_ can you please tell me correct directory?
22:58 <@tuxmaniac> slytherin: its right
22:58 <@tuxmaniac> /usr/share/common-licenses
22:59 <@slytherin> tuxmaniac: there is a type, c instead of s
22:59 <@tuxmaniac> aah ok :-)
22:59 <@slytherin> is the copyright clear to everyone?
22:59 < punchagan> yes
23:00 < sumitc> yes
23:00 <@slytherin> Ok. The last important file is rules file
23:00 <@slytherin> Now let's us discuss what the example rules file contains
23:01 <@slytherin> is everyone here familiar with format of a makefile?
23:01 < sumitc> yes
23:02 < shanka> somewhat...
23:03 < pulsar> nope
23:03 <@slytherin> Ok. rules file basically contains various targets like build, clean, install which are executed by to build the software.
23:04 <@slytherin> build target may be divided in two parts. build-indep is for architecture independent files and build-arch is for architecture dependent files.
23:04 <@tuxmaniac> slytherin: Sorry for interrupting. I think it would be better if you point the channel to a simple rules file and explain usig it
23:05 <@slytherin> tuxmaniac: yes, that is what I am doing. The sample in the packaging guide is good enough. :-)
23:06 <@slytherin> Let's make it short. build target will specify what all command you need to fire to build the program. As seen in example the command are configure and make (usual for most C/C++ programs)
23:07 <@slytherin> install target specifies where to put the files in resulting package. clean target specified how to clean the build environment.
23:08 <@slytherin> Now let's build the hello program so that the process is clear to everyone.
23:09 -!- aanjhan [n=aanjhan@122.164.127.194] has quit ["Leaving"]
23:09 <@slytherin> Let's move to 'Packaging From Scratch' towards the top part of page and do everything one by one.
23:10 <@slytherin> everyone ready?
23:10 < shanka> yes
23:10 < sumitc> yes
23:10 < punchagan> yeah!
23:10 <@slytherin> let's get the package source. as specified using wget
23:11 <@slytherin> done?
23:12 < sumitc> yes
23:12 < punchagan> yes
23:13 < shanka> yes
23:13 <@slytherin> Now we have to give the file downloaded a particular name. It has to be of the format <name>_<version>.orig.tar.gz. So next step - cp hello-2.1.1.tar.gz hello_2.1.1.orig.tar.gz
23:13 < sumitc> done
23:14 < punchagan> done.
23:14 <@slytherin> lets' extract the package
23:14 <@slytherin> tar -zxvf hello_2.1.1.orig.tar.gz
23:14 < sumitc> done
23:15 < shanka>  done
23:15 < punchagan> done
23:15 <@slytherin> Now you will get a hello-2.1.1 directory. Please note that this directory contain only upstream source and not the debian packaging files.
23:15 <@slytherin> change to directory. cd hello-2.1.1
23:15 < sumitc> done
23:16 <@slytherin> create a debian directory inside hello-2.1.1
23:16 <@slytherin> mkdir debian
23:18 <@slytherin> (23:17:44) punchagan: [question] why was the file name changed?
23:18 <@slytherin> punchagan: It is needed to be in particular format so that package name and version can be parsed.
23:18 < punchagan> okay
23:19 <@slytherin> now we will create all the files in debian directory
23:19 <@slytherin> cd debian
23:20 <@slytherin> First file is changelog. Let's copy the changelog from example and change it as per our need.
23:21 <@slytherin> Let me know when you have copied the changelog
23:21 < punchagan> from the site?
23:21 < shanka> done
23:22 <@slytherin> punchagan: yes
23:22 < punchagan> done.
23:22 < sumitc> done
23:22 < shanka> I copied from the previous directory "cp ../Changelog ChangeLog" is that fine?
23:22 <@slytherin> ChanServ: wrong. That is upstream changelog
23:23 <@slytherin> shanka: that was for you
23:23 < shanka> slytherin: ok sorry..
23:23 < shanka> ok copied from the site now
23:24 -!- dumbhead [n=balajin@nylug/member/dumbhead] has quit ["Venturing into the real world (http://balajin.net/blog)"]
23:25 <@slytherin> Ok everyone, change package name to hello
23:25 < shanka> done
23:25 < sumitc> change which package name?
23:26 <@slytherin> sumitc: which changelog did you copy?
23:26 < sumitc> from the website
23:26 <@slytherin> sumitc: did you copy the template or the sample one?
23:26 < sumitc> the sample one withe the date generated with date -R
23:26 < punchagan> i copied template.
23:26 < sumitc> got it
23:27 < sumitc> slytherin, got it
23:27 <@tuxmaniac> back
23:27 <@slytherin> First line should be like this - hello (2.1.1-0ubuntu1) hardy; urgency=low
23:27 < punchagan> ok tuxmaniac
23:27 < sumitc> I should change that line to hello, isnt it slytherin?
23:27 <@slytherin> you can look at the sample if in doubt
23:28 <@slytherin> sumitc: yes, instead of 'package' it should be 'hello' (without quotes)
23:28 < sumitc> ok, done
23:28 < punchagan> done.
23:28 <@slytherin> version as explained before. We are assuming the package is not present in Debian, hence -0ubuntu1
23:29 < shanka> ok
23:29 <@tuxmaniac> [#ubuntu-in] orthodoc_: 
23:29 <@slytherin> Now add an entry - New Upstream version. Please note there should be two spaces on everyline and add appropriate '*' or '-' characters along with indentation for readability
23:30 <@tuxmaniac> 23:29 < punchagan> [question] if it was a real thing, we would've first checked Debian repos?
23:31 <@slytherin> punchagan: if it was areal thing you would be probably modifying debian package. SOmetime debian package is synced as it is and does not need modifications in Ubuntu
23:31 < punchagan> ok slytherin
23:32 <@slytherin> The last line of change log is identification of the packager. It should start with one space followed by two dashes ( --)
23:33 <@slytherin> Change the name, email address and date. Email address should be in <> brackets. Date should be the one returned by 'date -R command'
23:33 < punchagan> ok.
23:33 < shanka> done
23:33 <@slytherin> there should be two spaces between email and date
23:34 <@tuxmaniac> Note: There are several devscripts that automates and takes care of these lining and indentation. I suppose slytherin will explain them after completing the basic example.
23:34 <@slytherin> tuxmaniac: We will probably have another session sometime this week since lot needs to be discussed before our friends can get to work.
23:34 < punchagan> done.
23:35 <@slytherin> If everyone is done then save and close changelog and create control file. rather copy the sample control file as it is since there is nothing to change.
23:35 <@tuxmaniac> slytherin: sure. An Packaging session - Intermediate :-)
23:36 < sumitc> done
23:36 -!- riddle28 [i=ca992984@gateway/web/ajax/mibbit.com/x-3b7023273c747eb8] has quit ["http://www.mibbit.com ajax IRC Client"]
23:37 < shanka> done
23:37 < punchagan> done.
23:38 <@slytherin> in the sample control file there is space after hello in 'Source:' field. Please remove it.
23:38 <@tuxmaniac> 23:37 < punchagan> [question] the file should be names ChangeLog ? or changelog?
23:38 -!- iNFiNiTE [n=iNFiNiTE@unaffiliated/infinite] has quit ["Leaving"]
23:38 <@slytherin> punchagan: all file names are small case.
23:38 < punchagan> ok
23:39 < sumitc> done
23:39 <@slytherin> I want to highlight only one part of control file. Depends: ${shlibs:Depends}
23:40 <@slytherin> that part is replaced by actual dependencies dynamically based on what packages you are using to build your package. It does not work with java apps since there is no provision in java libraries for calculating shlibs:Depends
23:41 < punchagan> ok.
23:42 <@slytherin> next file is copyright. Copy the template and change it at your leisure. As of now it is not actually parsed for anything. So doesn't matter what contain you add in it.
23:42 < punchagan> ok
23:43 <@tuxmaniac> 23:42 < sumitc> [question] what is ${shlibs:Depends}?
23:43 < punchagan> done.
23:43 <@slytherin> sumitc: I answered it before you asked. Check above.
23:44 < sumitc> oh, got it
23:44 <@slytherin> Next file is rules file. Let's copy it as it is. As of now it is important to understand the package building rather than contents of rules file.
23:45 < punchagan> ok. done.
23:45 <@slytherin> everyone done? next part is crucial
23:45 < sumitc> done
23:46 < shanka> done
23:46 < punchagan> done
23:46 <@slytherin> Now we have to build the source package. because you upload source package to repository and then they are build on servers.
23:47 <@slytherin> move out of debian directory into parent directory i.e. hello-2.1.1.
23:47 < punchagan> ok
23:48 <@slytherin> the command is 'debuild -S -sa'
23:49 < sumitc> slytherin, wait, got to install devscripts
23:49 <@slytherin> any problems?
23:49 < punchagan> me too.
23:49 < sumitc> dont have devscripts installed
23:49 <@slytherin> ok, I will wait
23:51 < sumitc> getting error
23:51 <@slytherin> sumitc: what error?
23:51 < sumitc> i'll pastebin them,wait
23:52 -!- Filled-Void [i=Biju@unaffiliated/Filled-Void] has left #ubuntu-in-classroom ["Leaving"]
23:52 < punchagan> fakeroot debian/rules clean failed < slytherin
23:52 < sumitc> slytherin, http://rafb.net/p/jsliKh60.html
23:53 <@slytherin> sumitc: please paste your changelog
23:54 <@tuxmaniac> sumitc: paste your changelog
23:54 < punchagan> i got the lines from 7-10 slytherin [not the previous part]
23:54 <@slytherin> punchagan: DO you have debhelper installed?
23:54 < sumitc> tuxmaniac, slytherin, http://rafb.net/p/TWegz866.html
23:54 < punchagan> let me see
23:55 <@tuxmaniac> punchagan: necessary to have build-essentials? slytherin ?
23:55 <@slytherin> punchagan: and are there any other errors? Please paste complete error
23:55 <@tuxmaniac> I am not sure
23:55 <@slytherin> tuxmaniac: I was expecting everyone has build-essential
23:56 <@slytherin> sumitc: where did that Wed come from in the date?
23:56 < shanka> I'm also getting a similar error make:  (-): No such file or directory
23:56 < shanka> make: *** No rule to make target ` (-)'.  Stop.
23:56 <@tuxmaniac> punchagan: sudo apt-get install build-essential
23:56 < sumitc> slytherin, date -R
23:56 < punchagan> http://rafb.net/p/u1UmMM27.html
23:56 < sumitc> oh, sorry
23:56 < sumitc> my mistake
23:56 <@slytherin> sumitc: my date -ARE sayd it is Sun
23:57 < sumitc> yes, sorry
23:57 < punchagan> tuxmaniac: i already have build-essential
23:57 < sumitc> now I'm getting lines 7-10
23:57 <@slytherin> Ok, I am debugging that error
23:58 <@slytherin> Ok, at the first line of the rules file, at the end of line remove (-) part
23:59 < sumitc> another error...
--- Day changed Mon Jul 14 2008
00:00 <@slytherin> sumitc: I know which one
00:00 < sumitc> ok
00:00 <@slytherin> In a make file, every line that contains a command should have tab at the start and not spaces.
00:01 <@slytherin> so you have to add tab and remove spaces at the start of every except the line which contains target name itself.
00:03 <@slytherin> see if this rules file works everyone - http://pastebin.ca/1071052
00:04 <@slytherin> do it fast guys, we have to wrap it up
00:04 < punchagan> ya.
00:05 <@tuxmaniac> done?
00:05 <@slytherin> you can do 'wget http://pastebin.ca/raw/1071052 -O rules' to download file directly
00:06 < shanka> that is done, but I'm getting another error: gpg: [stdin]: clearsign failed: secret key not available
00:06 < shanka> debsign: gpg error occurred!  Aborting....
00:06 -!- rsa_md5 [n=droopy@117.194.1.175] has quit ["Leaving"]
00:06 < shanka> It says that the private key is not found, but I've created a gpg key with the same name
00:06 <@tuxmaniac> shanka: aah thats because you dont have a gpg key
00:07 < shanka> tuxmaniac: I have one
00:07 -!- _sumitc_ [n=Sumit@59.93.254.44] has quit [Read error: 60 (Operation timed out)]
00:08 < shanka> tuxmaniac: running "gpg --list-keys" return a key
00:08 <@slytherin> shanka: name doesn't matter, email address is used to identify key
00:08 <@tuxmaniac> shanka: is it the same email address that you gave in changelog?
00:08 < shanka> slytherin: I've used the same email address.. lemme recheck
00:08 <@slytherin> you can skip signing for now by command 'debuild -S -sa -us -uc'
00:09 <@tuxmaniac> others is it building and a deb created?
00:09 < punchagan> no.
00:09 < punchagan> get similar error again.
00:09 <@slytherin> punchagan: what error?
00:09 <@tuxmaniac> punchagan: pastebin
00:09 < punchagan> http://pastebin.ca/1071064
00:10 <@slytherin> punchagan: have you downloaded the file I specified on pastebin?
00:10 < punchagan> yes.
00:10 < punchagan> and I put it in debian folder.
00:10 < punchagan> i don't get why it says no such file.
00:11 <@tuxmaniac> punchagan: it says no such ":" file
00:11 <@tuxmaniac> punchagan: somethings wrong with your rules
00:11 <@tuxmaniac> shanka: it builds now with the command given by slytherin?
00:12 <@slytherin> punchagan: you messed up rules file.
00:12 < shanka> it does.. finally I got a message saying: \n Finished running lintian. \n got the prompt back too.. but deb file not created
00:12 < punchagan> but i just used wget to get it. :(
00:12 <@tuxmaniac> shanka: it will be outside the parent directory
00:12 <@slytherin> shanka: No, we just created source package
00:13 <@tuxmaniac> shanka: paste your rules please
00:13 <@slytherin> if you check in the parent directory you will see .dsc and .diff.gz file
00:13 < shanka> slytherin: source package? then that's created!
00:13 <@slytherin> tuxmaniac: he is right, we haven't yet binary package
00:13 <@tuxmaniac> yeah. did not see that
00:13 <@tuxmaniac> slytherin: ^
00:14 < shanka> tuxmaniac: http://pastebin.com/m33898467
00:14 <@slytherin> punchagan: in which directory did you do wget command?
00:14 <@tuxmaniac> punchagan: try to use this ^&
00:14 < punchagan> debian.
00:14 <@slytherin> punchagan: see if you have more than one rules file.
00:14 <@slytherin> punchagan: and paste your rules again on pastebin
00:15 <@slytherin> sumitc: are you done with source package?
00:15 <@tuxmaniac> slytherin: closing soonish?
00:15 <@slytherin> tuxmaniac: yes, pretty soonish
00:15 <@slytherin> gues please give fast response, I can not sit here all night
00:16 < punchagan> ok. you go on slytherin. I'm unable to figure out right now.
00:16 <@tuxmaniac> slytherin: proceed with your comments. 
00:16 < punchagan> I'll follow along with shanka and do it later.
00:16 < shanka> done with source packages I think, in the parent directory I have dsc, asc, tar.gz, .build, .changes files
00:16 <@tuxmaniac> punchagan: sumitc we will work things out in the morning
00:16 < punchagan> yeah tuxmaniac
00:16 <@tuxmaniac> shanka: you are throgh!
00:16 <@slytherin> punchagan: please paste your rules file so that tuxmaniac can inspect
00:17 < shanka> yey! how to get a *.deb from this?
00:17 <@tuxmaniac> slytherin: now that shanka is through, keep that and complete.
00:17 <@slytherin> Ok. We now build binary package. When you use pbuilder the command is 'pbuilder --build *.dsc' replacing *.dsc with appropriate name. But in our case we are going to do it in similar way as source package
00:18 <@slytherin> the command is 'debuils -b' Add '-us -uc' I fyou don't want to sign
00:18 < shanka> ok
00:18 < punchagan> tuxmaniac: http://pastebin.com/m75520b76
00:19 <@tuxmaniac> punchagan: can we work on it in the morning ?? :-) its pretty late and tomorrow is monday! 
00:19 < punchagan> yes. sure.
00:19 < punchagan> i'll try to sort it out tonight and get back tomorrow, tuxmaniac.
00:19 <@tuxmaniac> punchagan: I will get back to you or may be mail you. pm your mail id
00:19 <@slytherin> punchagan: you can find me online in day time and we will try to work on it then
00:19 < shanka> slytherin: debutils not found?
00:19 < punchagan> yes. thanks tuxmaniac slytherin
00:20 < shanka> which package does it belong to?
00:20 <@slytherin> shanka: sorry it is debuild
00:20 -!- sumitc_ [n=chatzill@unaffiliated/sumitc] has joined #ubuntu-in-classroom
00:20 <@slytherin> shanka: the only difference here is -b which means build binary package
00:20 -!- sumitc [n=chatzill@unaffiliated/sumitc] has quit [Nick collision from services.]
00:20 < shanka> ok
00:21 -!- sumitc_ is now known as sumitc
00:21 <@slytherin> sumitc: did you have success in building source package?
00:21 -!- _sumitc_ [n=Sumit@59.93.201.97] has joined #ubuntu-in-classroom
00:21 < shanka> hurray! I've a deb!!
00:21 < shanka> thanks slytherin
00:21 <@tuxmaniac> Logs will be uploaded on the wiki page itself.Mail will be sent to the mailing list for reference
00:21 < sumitc> slytherin, no, I think I missed a lot of discussions
00:22 <@slytherin> sumitc: did you run command debuild -S?
00:22 < sumitc> not that one
00:22 <@slytherin> shanka: now try installing that deb file with 'sudo dpkg -I hello*.deb' The you should be able to run program hello
00:22 < sumitc> slytherin, still error
00:22 < shanka> yeah doing that now
00:23 <@slytherin> sumitc: what error? Did you download the file I specified?
00:23 < sumitc> which file? I missed something I think. :(
00:23 <@slytherin> shanka: now you won't, there is no binary in that package. :-P
00:24 <@slytherin> sumitc: wget http://pastebin.ca/raw/1071052 then rename it as rules file
00:26 < shanka> slytherin: yeah was able to install the package *.deb but typing "hello" in terminal says command not found
00:27 <@tuxmaniac> I am moving the logs at this point is it OK? Can we call it a day "officially" ?
00:27 -!- kart_ [n=kart_@121.245.6.93] has quit [Read error: 110 (Connection timed out)]
00:27 <@slytherin> shanka: looks like something wrong with rules file. I will confirm and let you know
00:27 < shanka> slytherin: ok no problem
00:27 < shanka> we'll call it a day then...
00:28 < shanka> maybe we can meet up here at 21:00 tomorrow
00:28 < shanka> ?
00:28 <@slytherin> tuxmaniac: sure. T least one guy has built it successfully even if the package is mesed up
00:28 <@tuxmaniac> Cool guys!!! Thanks for coming in. 
00:28 <@tuxmaniac> and three cheers to slytherin 
00:28 < punchagan> hip hip hurray!
00:28 <@tuxmaniac> Hip Hip Hurray!
00:28 < shanka> tuxmaniac: slytherin: nicely done! Hip Hip Hurray!!!
00:28 < sumitc> :(
00:28 < sumitc> still error...
00:28 <@tuxmaniac> ------------- Session closed. Logs stopped ---

This page was last modified 12:58, 30 July 2008. This page has been accessed 309 times.

  
Powered by MediaWiki

Copyright © 2008, Ubuntu India | All contents are under GNU Free Documentation Licence | For queries mail admins at ubuntu-in.info