[00:10] <hggdh> OK, folks, sorry for the delay
[00:11] <hggdh> I will answer questions you may have about bugs -- mostly bug triaging, so please do ask them
[00:11] <hggdh> BTW, thanks go to pleia2 for tracking me down ;-)
[00:13] <hggdh> er.
[00:14] <hggdh> I do really welcome questions, so please *do* ask them.
[00:14] <hggdh> the channel is open -- I asked the mods to open it so that you all would be able to ask them questions
[00:16] <pleia2> hggdh: if I had some free time and wanted to get involved, where would I start?
[00:17] <hggdh> the best would be to join us on #ubuntu-bugs. It is very easy to help, and we do not require much:
[00:17] <hggdh> (1) interest in helping
[00:17] <hggdh> (2) interest in *learning* -- you do not need to know all about a programme/package to help, you can learn on the fly
[00:18] <hggdh> (3) very important is respect -- treat the people that open the bugs nicely. This does wonders to help *us*
[00:19] <hggdh> finally, reading http://wiki.ubuntu.com/HelpingWithBugs will allow you to find the way
[00:20] <hggdh> some people worry about how much time they will spend on triaging. There is *no* requirement. If one in every 1,000 Ubuntu users look at ONE bug
[00:20] <hggdh> per day... we will be sooo happy...
[00:29] <Pendulum> hggdh: just want to let you know that you are not forgotten, I'm just reading your link before I figure out if I have any questions :)
[00:29]  * hggdh waits...
[00:30] <hggdh> no hurry, no hurry ;-)
[00:34] <Pendulum> okay, I have a question!
[00:35] <Pendulum> I'm looking at the How to Triage page
[00:35] <hggdh> and?
[00:35] <Pendulum> and it's talking about starting with simple untriaged bugs. is that something that's going to be readily apparent (which are relatively simple bugs to start with) or more something that will require a bit more mentoring from someone on the bug squad?
[00:36] <hggdh> it is usually better for one to start by, er, browsing the NEW/INCOMPLETE bugs, looking for something understandable
[00:37] <hggdh> which is to say, something that the new triager can follow. Usually this is on a programme that is used by the triager
[00:38] <hggdh> there is no requirement -- in fact, I would rather suggest *not* to do -- to get the first bug and try to find out what it is about
[00:39] <hggdh> so: browse. Find something you can understand, or follow. Go from there -- and always, *ALWAYS* remember we are at #ubuntu-bugs to help you
[00:39] <hggdh> we don't bite. We don't yell. We *do* help :-)
[00:40] <pleia2> from the perspective of a package maintainer, would it be appropriate to ask the bugs team to help out on some bugs?
[00:40] <hggdh> yes, it would. This is usually done via the Bug Days, when a specific package is looked at.
[00:41] <pleia2> great :)
[00:41] <hggdh> Although I do not know how it went, just today a maintainer asked for a Bug Day for gnome-power-manager, for example
[00:41] <hggdh> of course, every day is a bug day for us...
[00:42] <pleia2> so is it typically maintainers who propose a day for their package?
[00:42] <hggdh> I would say half the times. We also propose them ourselves, based on some simple metrics
[00:43] <pleia2> so something like "wow, this important package has tons of bugs, let's work on it!"
[00:43] <hggdh> like "it looks like we need to pay attention on package X"
[00:43]  * pleia2 nods
[00:43] <hggdh> yes. Maybe because one of us also uses this package, and there are bugs bothering... (we are humans, after all)
[00:43] <pleia2> :)
[00:46] <hggdh> by the way, sometimes we are asked something like "I know C (or Haskell, or whatever). How can I help triage bugs?"
[00:46] <hggdh> well.
[00:47] <hggdh> *before* I can code a fix, I first have to understand what *is* the problem.
[00:48] <hggdh> It does not necessarily follow that all bugs are code issues, nor that all bugs need a developer-type person to fix it
[00:48] <hggdh> and this is perhaps very important: we have to be able to differentiate between cause and consequence
[00:49] <hggdh> for example, (a bit technical) a SEGV is usually a *consequence* of a bad memory usage
[00:50] <hggdh> for one to fix it, one has to find the real cause (following the -- bad -- example, where the memory was incorrectly overlaied/freed/whatever)
[00:50] <hggdh> in triaging, we are trying to identify the *causes*
[00:51] <hggdh> so we have to parse the reporter's language, looking for the real issue
[00:53] <hggdh> also -- sometimes we get a bug in a different language. The official language for bugs is English, BTW.
[00:53] <FreeFall_> Is there som kind of list when these Bug Days are?
[00:55] <hggdh> Bug Days usually happen every Thursday, and are announced on a series on mailing lists. Usually we do not project more than 2 weeks in the future
[00:55] <hggdh> and Thursday, I mean *your* Thurday, from 00:01 to 23:59. Anywhere is the world.
[00:56] <Pendulum> < Acar> Question: what will we need to report a bug?
[00:57] <hggdh> try to clearly explain your issue; always mention the Ubuntu version; if it is in a programme, you usually can click on Help/Report a Bug
[00:57] <hggdh> and -- please -- wait.
[00:58] <hggdh> We are few, doing triage, and there are a lot of bugs to be looked at.
[00:58] <hggdh> Or, better, come in and help us with the backlog ;-)
[00:59] <hggdh> there is an important difference between bugs and support
[00:59] <hggdh> we accept package/programme bugs -- i.e., the documentation is wrong, the results are wrong, it suddenly crashes
[01:00] <hggdh> we do not accept support requests -- e.g. "how do I connect to my internet provider"?
[01:02] <pleia2> thanks hggdh!
[01:02] <hggdh> welcome
[01:03] <Pendulum> thank you hggdh!
[05:26] <prakash_irc> hi there.. i just read that there was some session about python on this channel couple of days back..
[05:26] <prakash_irc> As i missed it, i would like to know if i can get any notes or video or audio of that session.
[05:26] <prakash_irc> Anybody knows about any site where i can find it?
[05:45] <lvfadeaway_> Im ready to learn! Somebody teach me something
[05:48] <ddecator> lvfadeaway_, https://wiki.ubuntu.com/Classroom#Schedule
[06:01] <lvfadeaway_> i saw that schedule but that all looks pretty advanced. Where is the beginner course?
[06:01] <kermiac> lvfadeaway_: https://wiki.ubuntu.com/UbuntuOpportunisticDeveloperWeek/IntroToPythonForTotalBeginners
[06:03] <kermiac> lvfadeaway_: also http://irclogs.ubuntu.com/2010/02/25/%23ubuntu-classroom.html
[06:19] <enli1> The google calender schedule timing at http://is.gd/8rtIi is my local time or GMT?
[06:20] <enli1> nvm its UTC
[16:54] <enthdegree>  
[16:56] <shadeslayer> manuelciosici: yes!
[16:56] <shadeslayer> :P
[17:01]  * shadeslayer gets notes in order
[17:01] <shadeslayer> apparently rowingolfer couldnt make it
[17:01] <shadeslayer> * Hi there , first of all thank you for attending this session and welcome to #ubuntu-classroom,lets see how many people we have here.Raise your hands and say hi! in #ubuntu-classroom-chat :D
[17:02] <shadeslayer> Ah nice we have a good turn out!
[17:03] <shadeslayer> * Ok,first a bit of intro about my self, Im Rohan Garg aka shadeslayer on the irc,im a 19 years old and live in Gurgaon,India.You can find out all about me at : www.identi.ca/shadeslayer and www.launchpad.net/~rohangarg
[17:05] <shadeslayer> ok before we begin i want all of you to register on launchpad and start making PGP keys
[17:05] <shadeslayer> !pgp
[17:07] <shadeslayer> ok heres the link : https://wiki.ubuntu.com/GPGKey
[17:07] <shadeslayer> please follow the instructions there,upload your PGP keys to the ubuntu key server and sign the Ubuntu Code of conduct
[17:09] <shadeslayer> If you have any problems please say so in #ubuntu-classroom-chat
[17:09] <shadeslayer> Ok here we go!
[17:10] <shadeslayer> * So what are PPA's basically?
[17:10] <shadeslayer> * PPA's are Personal Package Archives,which means you can upload all sorts of apps and launchpad builds the binaries for you!
[17:11] <shadeslayer> * You can accomplish that via pbuilder too ( more on that at the end of the class ),but LP ( launchpad ) goes a step further and gives you your own repository ( repo ),limited to 1GB,to publish your own packages!
[17:12] <shadeslayer> I really hope you guys have started on GPG keys ;)
[17:13] <shadeslayer> !binary | abhi_nav
[17:14] <shadeslayer> abhi_nav: Apps are written in C++,Java ,etc, we need to convert them to binaries to run them as Computers just understand 0's and 1's
[17:15] <shadeslayer> abhi_nav: The code is basically characters which have to be converted to 0's and 1's
[17:15] <ClassBot> abhi_nav asked: what is the difference between apps and binaries? what the binary is actually?
[17:15] <shadeslayer> ok thats done :)
[17:16] <ClassBot> abhi_nav asked: one which is published on lp is my public key. but where is my private kay? how to find it?
[17:16] <shadeslayer> abhi_nav: you can list your keys with :  gpg --list-secret-keys
[17:17] <shadeslayer> * I think thats pretty amazing,dont you?
[17:18] <shadeslayer> * So just highlighting some of the amazing repos we have on LP are :
[17:18] <shadeslayer>     * Mozilla's Daily PPA : https://launchpad.net/~ubuntu-mozilla-daily/+archive/ppa
[17:18] <shadeslayer>     * Chromium Daily PPA : https://launchpad.net/~chromium-daily/+archive/ppa
[17:18] <shadeslayer>     * Kubuntu Backports PPA : https://launchpad.net/~kubuntu-ppa/+archive/backports
[17:18] <shadeslayer>     * Kubuntu Beta Backports PPA : https://launchpad.net/~kubuntu-ppa/+archive/beta
[17:19] <ClassBot> abhi_nav asked: does this same as that of convertin a c program to hex when writing to ic?
[17:19] <shadeslayer> abhi_nav: yes!
[17:19] <shadeslayer> abhi_nav: its basicall Machine code..
[17:19] <shadeslayer> *basically
[17:20] <ClassBot> ben72 asked: what are ppa:s usually used for? bugfixes I've seen but what else? are the Ubuntu maintainers of every package using their own personal ppa:s for the packets they maintain?
[17:21] <shadeslayer> ben72: anything and everything,they can hold packages of the latest KDE versions,apps that are frequently used by the community,apps you have helped developed and want to provide to the ubuntu community
[17:22] <shadeslayer> * All of us use these repos on a day to day basis and over this session ill be teaching you how to use PPA's to provide users with more up to date packages
[17:23] <shadeslayer> * What i will NOT be covering are libraries and new packages,those are much more complex and have to be taken up at a later stage.
[17:23] <shadeslayer> As i have learnt over the past few weeks... very painfully :P
[17:23] <ClassBot> enthdegree asked: Can't PPAs be used for the spread of malicios packages?
[17:24] <shadeslayer> enthdegree: of course! As you will learn,your PPA page contains a explicit warning about this issue
[17:24] <shadeslayer> * So lets get started with the actual building of a package!
[17:25] <shadeslayer> * Oh and if you have a question just shout QUESTION : <Type your question here> : in #ubuntu-classroom-chat ;)
[17:25] <shadeslayer> * So first of all to upload to a PPA you need a LP account,make one quickly at : https://launchpad.net/+login
[17:26] <shadeslayer> Ill wait for a few mins before continuing :)
[17:28] <shadeslayer> ok cool
[17:28] <shadeslayer> * So after you do that you need to sign the ubuntu COC,which is needed to enable PPA's,in order to sign the COC you need to have a gpg key,you can read about making a gpg key here : https://help.ubuntu.com/community/GnuPrivacyGuardHowto : now upload your keys to the ubuntu key server : gpg --send-keys --keyserver keyserver.ubuntu.com <KEY-ID> : and download the coc and sign it and then upload it back ;)
[17:29] <shadeslayer> The signing part is achieved by : gpg --sign ubuntucoc
[17:29] <shadeslayer> where ubuntucoc is the Ubuntu Code of Conduct you downloaded
[17:30] <shadeslayer> You should be able to download the COC from your launchpad profile page
[17:32] <shadeslayer> A ssh key is not needed as LP operates on FTP
[17:34] <shadeslayer> OK it might take a while for the keyserver to accept your key
[17:34] <shadeslayer> Continuing....
[17:34] <shadeslayer> * Now install ubuntu-dev-tools with : sudo apt-get install ubuntu-dev-tools
[17:35] <shadeslayer> These are needed for packaging your source and uploading them
[17:35] <shadeslayer> Heres a better description : https://wiki.ubuntu.com/UbuntuDevTools
[17:35] <ClassBot> abhi_nav asked: How to know is that ubuntu-dev tools are already installed?
[17:36] <shadeslayer> abhi_nav: well if apt-get install will print out some thing like : ubuntu-dev-tools already instaled
[17:36] <shadeslayer> *installed
[17:38] <shadeslayer> Ok has everyone installed ubuntu-dev-tools ?
[17:41] <shadeslayer> Should i continue?
[17:43] <shadeslayer> * Ok now we need to authorize ubuntu-dev-tools to LP, open a terminal and type : manage-credentials create -c CONSUMER --level 2 : where CONSUMER is your LP id.
[17:44] <shadeslayer> for eg : * Ok now we need to authorize ubuntu-dev-tools to LP, open a terminal and type : manage-credentials create -c rohangarg --level 2 : where CONSUMER is your LP id.
[17:45] <shadeslayer> use the read ALl non private data option
[17:46] <ClassBot> ben72 asked: level of access? should I choose "Change anything" on the webpage?
[17:46] <shadeslayer> ben72: see my last line
[17:48] <shadeslayer> Dont forget to press Enter in the terminal after youre done
[17:49] <shadeslayer> * Now type : manage-credentials create -c ubuntu-dev-tools -l 2
[17:49] <shadeslayer> * That gives access to ubuntu-dev-tools to LP.
[17:49] <shadeslayer> * Again we will only give access to read non-private data
[17:49] <shadeslayer> * Now back to your home page.
[17:51] <shadeslayer> * Now click Create New PPA
[17:51] <shadeslayer> * Give the PPA a name and description!
[17:52] <shadeslayer> You should be able to do this only if your gpg key was accepted
[17:52] <shadeslayer> and the COC was accepted
[17:53] <shadeslayer> CAUTION : You cannot change your LP url after publishing packages to your LP
[17:54] <shadeslayer> for eg: my LP url was : www.launchpad.net/~rohan16garg and i got it changed to www.launchpad.net/~rohangarg
[17:54] <shadeslayer> Anyone having problems?
[17:55] <shadeslayer> ok Continuing
[17:55] <shadeslayer> * Now onto the exciting part,for my demo here ill be using a fairly simple package to build,something we all use everyday,usually everybody gives a presentation with deb helper,but i just thing thats a bit old school
[17:55] <shadeslayer>   So im going to package choqok a kde microbloging client
[17:56] <ClassBot> abhi_nav asked: I have gnome. so will thim e.g. kde package work for me?
[17:56] <shadeslayer> abhi_nav: yes!
[17:57] <shadeslayer> abhi_nav: you will not be building the package locally but LP will build it for you!
[17:57] <shadeslayer> Speeding things up a bit
[17:57] <shadeslayer> * Now choqok is already in the repos so open a terminal and make a new directory in your home like this : mkdir my_dir_name : ill be using packaging as the dir name.
[17:57] <shadeslayer> * Now the official repositories dont always have the latest builds of packages and features users want are in SVN/GIT repositories and they generally dont want to compile from sources,so theyre in a fix.
[17:57] <shadeslayer> * The best workaround for K/X/Ubuntu users are PPA's which host loads of packages.
[17:58] <shadeslayer> * So lets get cracking on ours ;)
[17:59] <shadeslayer> Should i continue?
[17:59] <shadeslayer> * First of all we need to tell dput which uploads our packages where they are supposed to go,configure yours by reading this : https://help.launchpad.net/Packaging/PPA/Uploading : and as a example here's my .dput.cf : http://paste.ubuntu.com/385120/
[18:00] <shadeslayer> * So all done?
[18:00] <shadeslayer> * Ok,now you need to enable source repositories in you apt sources,just do this via synaptic or kpackagekit and tick the checkbox : [ ] Sources : You will need to reload your sources.list after this
[18:01] <shadeslayer> ok were back ;)
[18:01] <shadeslayer> now i have only 40 mins left
[18:01] <shadeslayer> so ill speed it up
[18:02] <shadeslayer> * Now we need to export some options to our .bashrc,so open a terminal and type : nano .bashrc
[18:02] <shadeslayer> * Now add these lines to the end : export DEBFULLNAME='Your_name_here' and export DEBEMAIL='your_email_id_here'
[18:02] <shadeslayer> * Save the file using Ctrl+O and hit Ctrl+X and then y to exit
[18:02] <shadeslayer> * Now we need to load the options we specified using : source .bashrc
[18:03] <shadeslayer> heres a example : http://paste.ubuntu.com/385199/
[18:03] <shadeslayer> NOTE : you need just the debmail and debname
[18:04] <shadeslayer> Continuing....
[18:04] <shadeslayer> * Save the file using Ctrl+O and hit Ctrl+X and then y to exit
[18:04] <shadeslayer> * Now we need to load the options we specified using : source .bashrc
[18:04] <shadeslayer> * Now cd to the packaging folder with : cd packaging
[18:04] <shadeslayer> * Now since were working on choqok we need its debian/ folder for packaging,so do : apt-get source choqok
[18:04] <shadeslayer> * This downloads the orginal tarball and the choqok folder with the deian/ folder in it
[18:06] <shadeslayer> Done?
[18:10] <shadeslayer> Ill have to continue
[18:11] <shadeslayer> * Now open a file manager and go to ~/packaging/
[18:11] <shadeslayer> * Now enter the choqok folder there and copy the debian directory to ~/packaging
[18:11] <shadeslayer> * Now you can remove the choqok folder and all the other files in ~/packaging excpet the debian/ folder
[18:11] <shadeslayer> * Now Download the choqok sources from here : http://choqok.gnufolks.org/download/ to ~/packaging
[18:13] <shadeslayer> Done?
[18:14] <shadeslayer> Make some noise in chat! :P
[18:14] <shadeslayer> Ok im continuing
[18:15] <shadeslayer> * Untar the tarball by using : tar xvfz filename.tar.gz
[18:15] <shadeslayer> * Now rename the tarball to choqok_0.9.4.orig.tar.gz
[18:15] <shadeslayer> * Ubuntu packaging versions follow this criteria : packagename_version.orig.tar.gz
[18:15] <shadeslayer> * For GIT/SVN packages we use : packagename_version+gitdate.orig.tar.gz like : choqok_0.9.4+svn20100227.orig.tar.gz
[18:15] <shadeslayer> * Now change the name of the untarred folder to choqok-0.9.4
[18:15] <shadeslayer> * Again folders follow : packagename-version+svndate
[18:15] <shadeslayer> * The svndate part is optional,its used only if we are packaging svn checkouts or git clones
[18:21] <shadeslayer> In packaging names are the most important part!
[18:22] <shadeslayer> Make sure you get these absolutely correct
[18:22] <shadeslayer> * Now in the terminal cd to the choqok folder : cd ~/packaging/choqok-0.9.4
[18:22] <shadeslayer> * Now Since were building this for lucid initially and then backporting it to karmic,the first entry in debian/changelog should be a lucid entry
[18:22] <shadeslayer> * So run : dch -D lucid -v 0.9.4-0ubuntu1~ppa1
[18:22] <shadeslayer> * What that command does is make the entry in debian/changelog and opens a debian/changelog in nano,with a * bullet for a description
[18:22] <shadeslayer> * These * represent any stuff you changed in the debian/ folder
[18:22] <shadeslayer> * Since this a new upstream release we write : * New Upstream Release
[18:22] <shadeslayer> * Close the editor with Ctrl+X
[18:25] <shadeslayer> The session is a bit slow so im just going on ;)
[18:25] <shadeslayer> * Now open the contro file with : nano debian/control
[18:25] <shadeslayer> * The control file lists the build deps of choqok,and other important info we need to build binaries
[18:25] <shadeslayer> * Now the latest Standards-Version is 3.8.4 not 3.8.1 so first of all we check if its compliant (it is) and we change it to 3.8.4
[18:25] <shadeslayer> * Next thing we change is the Home page url,it should read : http://choqok.gnufolks.org , so we change that
[18:25] <shadeslayer> * Everything else is fine as is
[18:27] <shadeslayer> ben72: yes,thats perfectly fine
[18:31] <ClassBot> ben72 asked: I get a warning for lucid I guess. is that ok?
[18:31] <ClassBot> ben72 asked: what is the Standards-Version btw?
[18:31] <shadeslayer> ben72: http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Standards-Version
[18:32] <shadeslayer> * Now we need to document what we changed, so do : dch -a in the choqok-0.9.4 folder
[18:32] <shadeslayer> * This command opens up debian/changelog with another bullet, Type : Changed Homepage url to http://choqok.gnufolks.org after the bullet
[18:32] <shadeslayer> * Close nano with ctrl+X and type dch -a again
[18:32] <shadeslayer> * This will put another bullet in debian/changelog, after the Bullet type : Bumped standards version to 3.8.4
[18:32] <shadeslayer> * And were almost done!
[18:33] <shadeslayer> I use dch -a to just to put the bullets,you can just use nano debian/changelog to do it,but dch -a always does it correctly with equally spaced bullets
[18:34] <shadeslayer> * Any Questions uptill now?
[18:35] <shadeslayer> * OK good!
[18:35] <shadeslayer> * Now in the choqok-0.9.4 folder run this : debuild -S -sa
[18:35] <shadeslayer> * What this command does is that it makes 3 files : choqok_0.9.4-0ubuntu1~ppa1.diff.gz , choqok_0.9.4+svn20100223-0ubuntu1~ppa1.dsc , and choqok_0.9.4+svn20100223-0ubuntu1~ppa1_source.changes in the packaging directory
[18:35] <shadeslayer> * Now cd to the packaging directory
[18:35] <shadeslayer> * Now were going to upload the choqok_0.9.4+svn20100223-0ubuntu1~ppa1_source.changes which contains all the info about the changes we made
[18:35] <shadeslayer> * So we use : dput ppaname choqok_0.9.4+svn20100223-0ubuntu1~ppa1_source.changes , where ppaname is the name of the ppa you configured in dput.cf
[18:35] <shadeslayer> * Thats it! Now your upload is in the LP build queue waiting to be built!
[18:40] <shadeslayer> Oh be sure to install cdbs and debhelper!
[18:42] <shadeslayer> I think i forgot to mention that you need to move the debian folder into the choqok folder
[18:50] <shadeslayer> [ Extra Hacks! ]
[18:50] <shadeslayer> * Now if your impatient like me,you can build your package in a few mins instead of waiting for LP builders to do their job.
[18:50] <shadeslayer> * Install pbuilder using : sudo apt-get install pbuilder
[18:50] <shadeslayer> * Creat a pbuilderrc  like this one : http://paste.ubuntu.com/385143/ : change the distro and the mirror to a local mirror to create the chroot quickly
[18:50] <shadeslayer> * Ok,now cd to ~/packaging and type : sudo pbuilder build choqok_0.9.4+svn20100223-0ubuntu1~ppa1.dsc
[18:50] <shadeslayer> * This builds your package in a clean chroot,you can even use this to find out if youve missed out on Build deps for new packages ;)
[18:50] <shadeslayer> [ New Packages ]
[18:50] <shadeslayer> * New packages are a bit hard to package,since they have no debian/ dirs in them,you have to use dh_make -e <your_email_id_here> to create the debian/ folder and the stuff that goes inside it
[18:50] <shadeslayer> * For eg i packaged a brand new KDE app recorditnow in my PPA,and found that it required a unpackaged lib : libjoschy : for creating the package
[18:50] <shadeslayer> * So i had to first package the joschy libs and then recorditnow,and this took me a entire 3 days to figure out ;)
[18:51] <shadeslayer> * What i would suggest is package stuff already in the repos and then switch to new stuff!
[18:57] <shadeslayer> So  that wraps it up folks!
[18:57] <shadeslayer> I had a wonderful time
[18:58] <shadeslayer> Ill be answering questions in chat
[18:58] <shadeslayer> Also i forgot to mention that you also need pkg-kde-tools,so im sorry
[19:00] <shadeslayer> back to normal