=== pollywog_ is now known as Pollywog [05:31] can i setup a server on my jaunty desktop for experiment purposes ..like .. checking my php and mysql skills.. using websites..etc...? === dholbach_ is now known as dholbach [06:14] Upcoming: 2 Apr @ 06:00 UTC: Fixing an Ubuntu bug... isnt that now? [06:14] in 45 minutes, I think ^_^ [06:14] yep [06:14] oh sry mixed up [06:14] run date -u in a terminal [06:15] it'll tell you what UTC time it is [06:16] dholbach: thx. clearly shows my need for the classroom ^^ [06:31] dholbach, hello [06:31] hiya balarka [06:32] dholbach, the presentation is going to start in few minutes right? [06:32] yep [06:32] great! [06:32] i am sorry if i disturbed you [06:32] but just want to confirm it didnt start already :) [06:33] no worries :) [06:33] thanks.. [06:39] dholbach, a quick ques.. this presentation is aimed at fixing an ubuntu bug.. and i am very dumb at open source and wanted to start from first [06:40] dholbach, am confused if this is for me [06:40] dholbach, as i am completely a novice programmer for ubuntu [06:40] I think it is okay, balarka, I am also confused [06:41] Pollywog, :) [06:42] don't worry guys - we can't cover everything in much detail but as long as you get an idea from it and have fun and know which questions to ask later, we're all good :) [06:42] that sounds good [06:44] how long will the presentation take? I have to go to work some time...;) [06:44] decumanus_: we'll try to stay within the hour with questions [06:45] but if there are followup questions, I'm happy to take them [06:45] ok thanks! [06:45] decumanus_: your in the CZ aren't you? [06:46] yes [06:46] I love it there... [06:47] akgraner: so do I:-) [06:47] I got to stay in Brno for about 2 months... [06:47] oh... who of you guys is multilingual? [06:48] if you are, could you hang out in #ubuntu-classroom- (like #ubuntu-classroom-fr) too and translate questions for team mates that are not too familiar with English yet? [06:50] akgraner: Prague here, but also like Brno:-) [06:51] decumanus_: I love Prague as well [06:52] decumanus_: I spent all day on the Charles Bridge [07:00] time is up! [07:00] ok my friends... the bells are tolling 8 o' clock here, so it's 6:00 UTC - ready to start! [07:00] who's here for some packaging training action? [07:00] me [07:00] m [07:00] me [07:00] me 2 [07:01] me too :) [07:01] me [07:01] me [07:01] me [07:01] me [07:01] muah! [07:01] fantastic [07:02] ok... so we're going to take a look at a few bugs I selected beforehand [07:02] and try to see what we can do about them [07:02] me [07:03] a category of bugs that is predestined for doing that is what you get when you click on the "xxxxx bugs fixed elsewhere" link on https://bugs.launchpad.net/ubuntu === dave_ is now known as pkpdjh [07:03] these are bugs that were filed in Ubuntu, our Bug Squad identified they were upstream problems (so no bugs that we introduced ourselves), forwarded those bugs to the upstream bug trackers and they were fixed there [07:03] before we get started, we need to set up a few things [07:04] could you please either 1) use the "Software Properties" dialogue to enable Sources or 2) add something like "deb-src http://archive.ubuntu.com/ubuntu/ jaunty restricted main multiverse universe" to /etc/apt/sources.list and run sudo apt-get update [07:05] I am running Hardy and Intrepid, not yet Jaunty [07:05] once you're done with that, please install the following packages: [07:05] cdbs bzr ubuntu-dev-tools devscripts [07:05] Pollywog: OK, then please adjust that line [07:06] k [07:06] next please add something like this to your ~/.bashrc file [07:06] export DEBFULLNAME='Daniel Holbach' [07:06] export DEBEMAIL='daniel.holbach@ubuntu.com' [07:07] (if you use a different shell, please use whatever config file that shell has, bash should be the default) [07:07] where do we ask questions? [07:07] just in here [07:07] afterwards either restart your terminal, or run source ~/.bashrc [07:07] oh nvm, Pollywog asked it i guess. apt-get complained about dist parse [07:08] posingaspopular: can you put up the log of that at http://paste.ubuntu.com ? [07:08] dholbach, so i put this line deb-src http://archive.ubuntu.com/ubuntu/ hardy restricted main multiverse [07:09] dholbach, is this correct ? [07:09] dholbach, i am using hardy [07:09] balarka: add universe to the end of the line too [07:09] dholbach, oh ok [07:09] dholbach, done [07:09] so what we did up until now 1) tell apt where to get source code of packages, 2) install a few tools we're going to need, 3) tell the packaging tools who you are (that simplifies a bunch of things later on) [07:09] dholbach: http://pastebin.com/d56816cc [07:10] posingaspopular: try removing the space in front of the last lines [07:10] dholbach, you mean add export lines at the end of bashrc file? [07:10] balarka: yes [07:10] ah no, i didnt add it correctly. didnt add the actual (universe, mulitverse, etc) at the end of the line [07:10] dholbach, ok [07:11] dholbach: should the .bashrc changes reflect the launchpad account settings? [07:11] posingaspopular: I guess " deb...." instead of "deb....." is the problem [07:11] hassanibraheem: it's generally a good idea to have that email address registered with Launchpad, but not relevant now [07:11] dholbach: ok [07:12] hassanibraheem: your preferred one will do [07:12] ok... who's not set yet? :) [07:13] dholbach, regarding the 3 point [07:13] uhmm i may be outa luck. running debian and unable to get ubuntu-dev-tools [07:13] dholbach, you meant to say we need to put [07:13] our name and address [07:13] brand0con: ignore ubuntu-dev-tools for now then [07:13] ok [07:13] in the export lines? [07:13] everything else is good [07:13] brand0con: rock on [07:13] balarka: yep [07:13] just add something like this to the end of the file [07:13] export DEBFULLNAME='Daniel Holbach' [07:13] export DEBEMAIL='daniel.holbach@ubuntu.com' [07:13] dholbach, so we dont have any @ubuntu.com address [07:14] dholbach, so any outside email address should be fine? [07:14] that's not necessary now [07:14] yep [07:14] dholbach, got it [07:14] dholbach, sure [07:14] super, so let's crack on [07:14] I thought we'd pick https://bugs.launchpad.net/ubuntu/+source/subvertpy/+bug/323270 first [07:15] the problem is in a python module, when used with python 2.6 (default in jaunty) it emits a warning about the deprecated use of another python module [07:15] luckily the problem has been solved by upstream already [07:15] * ara reads the bug report [07:16] everybody who is on jaunty, please run [07:16] apt-get source subvertpy [07:16] everybody else, please run [07:16] dget -xu https://launchpad.net/ubuntu/jaunty/+source/subvertpy/0.6.1-1build1/+files/subvertpy_0.6.1-1build1.dsc [07:16] this will download the source package for you [07:16] what does the u do? [07:16] so what's a source package? [07:16] * sianis is done [07:17] dget? is that a typo? [07:17] Pollywog: no [07:17] k [07:17] maco: it allows unauthenticated sources to be downloaded and unpacked [07:17] Hobbsee: thanks. ive only used -x [07:17] maco: (if you don't have the GPG key of the person who signed it) [07:17] dholbach, it says dget is not installed [07:17] balarka: install devscripts please [07:17] dholbach, sure [07:17] * silentsno downloaded the source for subvertpy. [07:18] a source package is what we need to build .deb packages [07:18] ls [07:18] dholbach, it says unknown option u [07:18] when i type dget command [07:18] as above [07:18] Question: so is the upstream patch already uploaded into this source package that we just downloaded? [07:18] it consists of 1) the .orig.tar.gz which is the unmodified tarball the upstream authors released on their homepage, 2) the .diff.gz: the compressed set of changes we need to make to build it "the debian/ubuntu way" and 3) .dsc file which is meta data like md5sums and so on [07:19] balarka: just use dget -x then [07:19] silentsno: no, that's our job :) [07:19] we'll get to that in a sec [07:19] does everything I said above make sense? [07:19] any questions right now? [07:19] yes [07:19] * silentsno nods his head. [07:20] silentsno: the stuff that's just been unpacked is what ubuntu currently has in jaunty for that package, fyi [07:20] ok perfect [07:20] dholbach, yes.. got the downloaded things [07:20] the great thing is: this works for every package in Ubuntu [07:20] I got 404's [07:20] you have all the source code just seconds away from you [07:20] dholbach, quick ques.. so can i treat a package as a class or module? [07:20] dholbach, or any spl entity? [07:20] nvm I think I had a typo [07:20] Pollywog: can you put up the log at http://paste.ubuntu.com ? [07:21] looks good now [07:21] balarka: a package is just a piece of software, it can be an end-user application, a small tool or a library that other tools use [07:21] dholbach, ok [07:21] in our case it's a "python module", so a piece of code that other packages written in python make use of [07:22] dholbach, got it [07:22] super [07:22] if you run [07:22] cd subvertpy-0.6.1 [07:22] less debian/copyright [07:22] what's the use of the command? [07:22] you will see information about the copyright and everything - right now we're just interested in "where do we get the sofware from?" [07:23] tashuiwuhen_: which command do you mean? [07:23] less [07:23] it will display the content of debian/copyright in a "pager" [07:23] which means you can scroll up and down using arrow keys, etc [07:23] once you're bored, you can type 'q' [07:24] "more" or "cat" would have worked too :) [07:24] 0,got it,thanks [07:24] super [07:24] we're interested in this line [07:24] It was downloaded from http://launchpad.net/subvertpy. [07:24] if you don't know where a particular package has its code from, debian/copyright should always tell you [07:25] so subvertpy is hosted on Launchpad, just like Ubuntu is [07:26] the great thing is, we can now do something like [07:26] bzr branch lp:subvertpy [07:26] to get the source code [07:26] (maybe run cd .. beforehand) [07:26] dholbach, didnt we get the code already? [07:26] by dget command? [07:27] balarka: that's what's in Ubuntu right now [07:27] Question: lp is because of "launchapd"? [07:27] balarka: now we get the current tip of what the upstream developers have been working on [07:27] cel_: exactly [07:27] ok, thanks [07:27] I get unknown repository format [07:27] me too [07:27] dholbach, ques.. who are the upstream developers? [07:28] balarka: the software authors of "subvertpy" [07:28] dholbach, oh ok [07:28] ok, let's take a different approach then [07:28] Pollywog: you need a newer bzr [07:28] hmmm [07:28] I am running Intrepid how old could it be [07:28] dholbach, it says bzr is not installed [07:28] I get the same error (using Intrepid) [07:28] dholbach, which version is preferable to install [07:28] balarka: install the bzr package then please [07:29] balarka: sudo apt-get install bzr [07:29] ok [07:29] dholbach, i get parse error at the end [07:29] dholbach, for sudo apt-get install bzr [07:29] dholbach, command [07:30] balarka: anything wrong in /etc/apt/sources.list then? [07:30] /var/lib/scrollkeeper/C/scrollkeeper_extended_cl.xml:5852: parser error : Extra content at the end of the document [07:30] peopel with older distros might need the https://launchpad.net/~bzr/+archive/ppa repository [07:30] Pollywog: basically anyone not on jaunty needs that ppa [07:30] balarka: that's an unrelated problem [07:30] maco: ty [07:30] I get Unknown branch format on hardy [07:30] dholbach, i dont think so.. as sudo apt-get update went fine [07:30] dholbach, without any errors [07:30] ok... hold off from running bzr branch lp:subvertpy then [07:30] ***** NON JAUNTY USERS: see the PPA JanC linked [07:30] we'll use a different approach [07:31] dholbach, sure [07:31] me,too,spych102 [07:31] no PPA needed then :) [07:31] so if you head to http://launchpad.net/subvertpy - it takes you a few clicks to get to https://code.launchpad.net/~jelmer/subvertpy/trunk-mirrored [07:31] which shows the revision history of what the upstream developers of subvertpy been up to [07:32] if you click on the "Source Code" link, it will show you the source code [07:32] dholbach: what is the syntax in /etc/apt/sources.list for the ppa? [07:32] posingaspopular: forget about the PPA for now [07:33] "Please try again" Sorry, there was a problem connecting to the Launchpad server. [07:33] ha ha, I am having the same problem too [07:33] me too [07:33] Thats from clicking on the SourceCode link [07:33] first packaging training session - everything needs to go wrong now [07:33] :-)))) [07:33] :) [07:33] :) [07:33] thats the spirit! [07:33] I just told the developers :) [07:33] it just came up for me [07:33] ok, so back to https://bugs.launchpad.net/ubuntu/+source/subvertpy/+bug/323270 for a minute [07:34] the first comment says: [07:34] Using Python 2.6: [07:34] ...Lib\site-packages\subvertpy\delta.py:21: DeprecationWarning: the md5 module is deprecated; use hashlib instead [07:34] import md5 [07:34] we shldnt leave me too! [07:34] what we need to check out now is subvertpy/delta.py - this seems to be where the problem is right now [07:35] dholbach: the source line at line 21 [07:35] exactly [07:35] I'll fast-forward a bit for now [07:35] http://bazaar.launchpad.net/%7Ejelmer/subvertpy/trunk-mirrored/changes?filter_file_id=delta.py-20080316001917-xyng7m3jlxvdc4c9-1 [07:35] shows the changes which have been done to the upstream code repository for that file [07:36] does anyone see which revision number might solve our problem? [07:36] 2016 [07:36] dholbach: 2016 [07:36] yes 2016 [07:36] does everybody see the connection there? :) [07:36] ok, so let's head over to http://bazaar.launchpad.net/%7Ejelmer/subvertpy/trunk-mirrored/revision/2016 [07:36] yes [07:36] yes:-) [07:37] yes [07:37] and click on the "Download diff" link [07:38] dholbach, i could see someone used a deprecated method i guess [07:38] dholbach, i am not good at python [07:38] :) [07:38] in this case we'll trust upstream [07:38] if you cd into subvertpy-0.6.1/ again [07:38] and (if you have ubuntu-dev-tools installed) run what-patch [07:39] can anyone see the message it puts out? [07:39] where should we put the diff file [07:39] silentsno: just save it somewhere you can find it again :) [07:39] dholbach: It says patchless? [07:39] command not found? [07:39] dholbach: patchless [07:39] Crusher, sianis: exactly [07:40] so what does what-patch do? [07:40] posingaspopular: you have ubuntu-dev-tools installed? [07:40] tell you patching system its using [07:40] oh, the command is 'what-patch' not 'run what-patch' :P [07:40] it tell us, if the package maintainer decided to store additional patches on top of the regular code [07:40] got it [07:40] err, in which way the maintainer decide to store patches [07:41] dholbach: you mean as in a patch management system? [07:41] dholbach, what are we trying to achieve [07:41] in our case the maintainer decide to just patch the source directly [07:41] here? [07:41] maco: exactly [07:41] dholbach, i am kind of lost [07:41] balarka: so the packgae in Ubuntu right now is broken [07:41] dholbach, ok [07:41] you mean they patched it rather than give us the patch to use? [07:41] well that's much cleaner than the grepping in debian/control dtchen told me to do [07:41] balarka: we found out that it's fixed by the software authors already, we found out what the fix is and downloaded it [07:41] balarka: now we need to apply it to the package [07:42] dholbach: so, in that case, the ubuntu source is just the upstream code with no additional ubuntu changes... right? [07:42] dholbach, so the diff we downloaded has the patch? [07:42] dholbach: Deprecation is a warning and not an error, isn't it? [07:42] hassanibraheem: that we can not tell, you're right "patchless" is a bit misleading there - I'll make a note [07:42] hassanibraheem: what it means to say is "patches are directly applied on the source and not stored separately" [07:42] Pollywog: they can't just send the patch to everybody on the internet ;) [07:43] k [07:43] what other valid output could I expect, other than "patchless?" [07:43] I was not sure if I understood [07:43] sianis: yes, but may become an error in the future - also the warning might be a bit disturbing if you get it every day :) [07:43] dholbach: oh, ok [07:43] balarka: yep [07:43] dholbach: you got roght :P [07:43] ok [07:44] problem here will be the patch level if we all did not put our patch file in the same place, I think [07:44] blfgomes: quilt, cdbs, yabba...i assume it just spits out their names directly [07:44] dholbach, so how do we know that. .that the patch is seperate and the patch has not already been applied to the code [07:44] blfgomes: https://wiki.ubuntu.com/PackagingGuide/PatchSystems [07:44] maco, Crusher: thanks [07:45] balarka: exactly [07:45] balarka: because if it had been applied already, the bug wouldn't exist, right? [07:45] balarka: the code that ubuntu has is older and without this updates that we will apply [07:45] Hobbsee, but if the bug is already there.. why dont the devs fix it [07:45] and give? [07:46] balarka: and you know that the bug still exists, thus, it's not been applied. Also, when you later use patch (or similar tools), it will warn you if it's already been applied, and ask you if you want to revert it [07:46] balarka: it has been fixed upstream in a new version. we're backporting the fix. [07:46] balarka: because you're "the dev" in terms of ubuntu, and you're fixing it. [07:46] maco, Hobbsee thanks [07:46] maco: thanks that answers my puzzlement as well [07:47] so I just tried applying the patch and this is what I got: [07:47] patching file subvertpy/delta.py [07:47] Hunk #2 FAILED at 86. [07:47] (note: you'll sometimes see pulling commits back into an older version referred to as "cherrypicking") [07:47] Hobbsee, so if i am the dev.. why would i put the patch someone else done already? [07:47] to say it simple: some people write software, and others make sure it works in their distro ;) [07:47] Hobbsee, i am little confused here [07:48] balarka: right, so there are two types of developers, right? [07:48] balarka: there's the people who write the software, and the people who package the software to get it into ubuntu [07:48] Hobbsee, you mean core and MOTU? [07:48] dholbach: mee too [07:48] balarka: what Ubuntu does is integrate software from lots of other projects, subvertpy being one of them [07:48] am I correct that the upstream authors submitted the patch and it is our job to apply it to the version in Ubuntu? [07:48] Pollywog: exactly [07:48] balarka: like authors who write a book, and librarians, who sort books and organise them in their libraries [07:48] Hobbsee, that was perfect example [07:48] balarka: but, if an author changes their book, and republishes it, it doesn't mean that the library shelves magically change [07:49] Hobbsee, thanks [07:49] Hobbsee, got the point [07:49] the librarian still has to do the work in finding another book, etc [07:49] cool :) [07:49] ok... cool - are we all clear on where we stand right now [07:49] nice explanation Hobbsee, ty [07:49] I think I have it [07:49] nanbanjin: :D [07:49] great [07:49] I'm good. Thanks, Hobbsee for the analogy. [07:50] Hobbsee, appreciated! [07:50] :) [07:50] Hobbsee++ [07:50] :-))) [07:50] ok great [07:50] the dead horse has been beaten [07:50] I just tried applying the upstream patch, this is what I got: [07:50] patching file subvertpy/delta.py [07:50] Hunk #2 FAILED at 86. [07:50] you get this every now and then when there have been a lot of changes in the upstream code and we didn't catch up yet [07:51] dholbach, so how to apply the patch? [07:51] what we'd need to do is apply the changes manually or at least parts of them [07:51] balarka: I'll get to that in a sec [07:51] dholbach, any specific command? [07:51] when you patch, is there still a "--dry-run" option in patch? [07:51] dholbach, sure.. [07:51] I just updated the patch to work properly :-) [07:51] so if you run [07:51] hehe [07:51] wget http://people.ubuntu.com/~dholbach/patch [07:52] you should get the patch file that's going to work for us [07:52] Pollywog: yes [07:52] if you [07:52] cd into subvertpy-0.6.1 again [07:52] and run [07:52] patch -p1 < ~/patch [07:53] (or wherever you downloaded the "patch" file to) [07:53] it is going to apply the updated changes [07:53] you should get something like this as the output [07:53] patching file subvertpy/delta.py [07:53] did that work for everybody? [07:53] yes [07:53] looks like that worked here [07:53] yes, worked [07:53] nope [07:53] perhaps an explanation of how to figure out and manually update patches would be in order at some point...even just as a blogpost on that packaging howto blog you've got, dholbach? [07:54] dholbach, is patch a command? [07:54] * silentsno patched file delta.py [07:54] maco: definitely [07:54] balarka: yes [07:54] it should be in the patch package [07:54] it gives No such file or directory [07:54] does the patch level depend on where we put the patch file? [07:55] Pollywog: it depends on how deeply into the source package it needs to go [07:55] sudo apt-get install cdbs bzr ubuntu-dev-tools devscripts (should give you all the tools) [07:55] Pollywog: i'm told "count the slashes" [07:55] maco: ty [07:55] i'm told "No such file or directory" [07:55] dholbach: what is the difference between the revision we downloaded from LP and your patch we downloaded [07:55] I want to package a java-library. It was called xtvd-lib by upstream and was placed at a directory called xtvd-lib. My control-file says "Source: xtvd-lib" and "Package: libxtvd". How can I use the same name for the source- and the binary-package? [07:55] Pollywog: it depends on from where the "diff" was run [07:55] aladin: can we please cover that later on? [07:55] dholbach: ty [07:55] dholbach, it gives me No such file or directory [07:56] aladin: we're in the middle of a session [07:56] dholbach, when i try the patch -p1 command [07:56] silentsno: one will apply cleanly, and one won't [07:56] dholbach, as above [07:56] aladin: #ubuntu-motu maybe better [07:56] Pollywog: where did you run wget http://people.ubuntu.com/~dholbach/patch ? [07:56] dholbach: it worked for me, I put the patch in ~ [07:56] silentsno: you can compare the patches visually to see how he changed it and compare to the source to try to figure out why [07:57] and put in the path in the patch line [07:57] it worked [07:57] silentsno: as I said before: the upstream developers put quite a bit of work into subvertpy and we didn't catch up yet, so the revision we downloaded from launchpad did not "apply cleanly on our source" - I updated it to apply cleanly [07:57] dholbach, it worked too [07:57] now [07:57] balarka: perfect [07:57] are we all patched up now? [07:57] I am patched [07:57] Same with me [07:57] anyone without the ticket? :) [07:57] me too [07:57] perfect [07:58] you need devscripts installed for the next step [07:58] So, if we run into a situation like this where the patch doesn't apply cleanly, what is usually the next step? [07:58] dholbach, can we apply the patch twice? [07:58] what we'll do now as every good package maintainer in the making is: document what we did [07:58] balarka: no, it will fail [07:58] dholbach, ideally it shoudl suceeed [07:58] right? [07:58] dholbach: that is why we can use --dry-run, right? [07:58] pkpdjh: review the patch and apply the "hunks" that failed manually [07:58] balarka: yep [07:58] dholbach, if it is a piece of code replacing another one? [07:59] Pollywog: yes, exactly [07:59] I was afraid that was the answer. I hate reading patch files manually. [07:59] balarka: that's exactly what patches do: replace other code [07:59] dholbach, ok [07:59] dholbach: what is a "hunk"? [07:59] pkpdjh: remind me of that later on and we chat a bit about it [08:00] dholbach: ok [08:00] Crusher: if you take a look at ~/patch (or whever you put it beforehand) [08:00] Crusher: parts between lines that have @ in them [08:00] you'll noticed "stanzas" that start with something like "@@ -18,7 +18,16 @@" [08:00] yep [08:00] dholbach, where? [08:00] so each one is a different hunk [08:01] didn't know the terminology :) [08:01] dholbach, wehre are the stanzas? [08:01] Crusher: exactly, it basically says "in lines X to Y make these changes" [08:01] balarka: all those lines that start with @@ either start or end a stanza [08:01] maco, you mean in the diff file we downloaded? [08:01] balarka: yes [08:02] exactly [08:02] oh ok [08:02] so let's document the changes we did [08:02] please run (after you've installed devscripts): [08:02] dch -i [08:02] (in subvertpy-0.6.1) [08:02] dch is a new one for me [08:02] me too [08:02] I have used a different command to do this [08:03] dch is a nice tool which makes editing debian/changelog easy [08:03] this is where package maintainers document what they do and why [08:03] this is particularly important where a lot of people work on packages together [08:03] you don't want others to guess why you made a change [08:03] ... and you don't want to have to guess half a year later :) [08:04] everybody hates documenting, but's it's important to do! :P [08:04] dholbach, so what all things we need to put here? [08:04] so I'll put something like this in there: [08:04] * subvertpy/delta.py: apply revision 2016 from upstream to fix python2.6 [08:04] deprecation (LP: #323270) [08:05] note a few things: [08:05] - I specify exactly which file we changed [08:05] - we say where the change came from (we didn't invent it ourselves) [08:05] - we say what exactly it fixes [08:05] - we say which Launchpad bug it fixes [08:06] (in cases where the patch is attached to a bug, not from upsteram. the 2nd bit can be "patch by Joe Smith") [08:06] all that in just one line ;-) [08:06] if you use something like "(LP: #323270)", it will automatically close the bug report, when the new source package gets uploaded [08:06] maco: exactly - give credit where it's due :) [08:06] dholbach: uploaded? or successfully built? [08:07] maco: uploaded to the build daemons - I'll get to that later if you remind me [08:07] ok [08:07] also please replace "0.6.1-1build2" (or whatever changelog version is up there) with "0.6.1-1ubuntu1" [08:07] maco, dholbach i didnt understand where the patch is attached to a bug [08:07] mean [08:08] balarka: if instead of grabbing a patch from upstream, someone has written a patch and attached it to the bug report in launchpad, you should give their name [08:08] maco, so they have got the patch and give it to the users to apply [08:08] right? [08:08] balarka: yes [08:09] oh ok [08:09] balarka: somebody who proposes a solution on a bug report [08:09] users apply themselves and use [08:09] balarka: in our case we chased up the solution somewhere else [08:09] Does putting ubuntu1 there mean this patch was not brought here from Debian, that it came from Ubuntu? [08:09] ok [08:09] Pollywog: it means: on top of the debian version 0.6.1-1 we put an Ubuntu change [08:09] wouldn't a person that proposes solution and supplies a patch build the package himself? [08:09] ty [08:10] nanbanjin, i guess he can or cannot depening on his interest [08:10] nanbanjin: they probably do, but as part of the overall bug fix discussion they might propose it to others on the bug report [08:10] nanbanjin: not necessarily. when i started submitting patches, i didnt know how to package, just how to write C [08:10] building a package and putting it in your PPA on launchpad is a *great* way to help users who don't know how to or don't want to deal with patching and compiling manually test proposed fixes [08:11] maco, what is PPA? [08:11] balarka: let's get to that later [08:11] dholbach, sure.. [08:11] all done editing the changelog? everybody put some text in there? changed the version number? [08:11] dholbach: sorry :P [08:11] maco: no worries [08:11] dholbach, me too [08:11] just few moments [08:12] I finished editing the changelog [08:12] now save the file [08:12] done [08:13] and for those of you running Ubuntu and having ubuntu-dev-tools installed, please run update-maintainer [08:13] dholbach: is update-maintainer smart enough to do nothing when the debian version is 0? [08:13] it will make a change in the packaging indicating "we changed the package for Ubuntu, don't send emails to the Debian maintainers about this please" :-) [08:13] maco: I think it's so dumb that it doesn't care, but I might be wrong [08:14] dholbach: heh ok [08:14] alright [08:14] dholbach, after editing i tried dch -i [08:14] again [08:14] Latest changelog entry has no Ubuntu version number. [08:14] it says dch fatal error [08:14] the backup file already exists [08:14] posingaspopular: did you change the version number to 0.6.1-1ubuntu1? [08:14] please move it before trying again [08:14] balarka: you only run dch -i once [08:15] oh [08:15] posingaspopular: just change it in debian/changelog [08:15] maco, what exactly is the purpose of it? [08:15] you meant if we are running Jaunty, to run update-maintainer [08:15] so running dch more than once is like running dh_make more than once? [08:15] maco, what if i want to change the log again later? [08:15] silentsno: should work in intrepid too [08:15] balarka: well you could manually type a new chunk into debian/changelog if you want, but dch adds the your name, version number, what time it is, your email address junk for you automatically [08:15] Pollywog: it will introduce a new changelog every time you run it and save the file afterwards [08:16] balarka: then you do it manually. there should be only 1 changelog entry per package version [08:16] k [08:16] i dont follow dholbach [08:16] posingaspopular: in debian/changelog, what's the first line? [08:16] posingaspopular: when you edit debian/changelog - which version number does it say? [08:16] maco, got it [08:17] subvertpy (0.6.1-1build2) jaunty; urgency=low [08:17] posingaspopular: see how it says build2? change that to ubuntu1 [08:17] posingaspopular: change it to 0.6.1-1ubuntu1 then, please [08:17] posingaspopular: "build" is used when ubuntu has not changed anything but the package has been rebuilt anyway [08:17] posingaspopular: "ubuntu" is used when you make changes [08:19] save the file and try again [08:19] okay now that works [08:19] yup thanks maco and dholbach [08:19] perfect [08:19] now please run (when you installed devscripts and cdbs): [08:19] debuild -S -us -uc [08:20] remember what I said about source packages in the beginning (orig.tar.gz, diff.gz etc)? [08:20] now we're updating the source package for our new version [08:20] if you cd .. and run ls [08:20] you should see a bunch of new files there [08:20] indeed [08:20] so not just subvertpy_0.6.1-1build1.dsc and subvertpy_0.6.1-1build1.diff.gz [08:21] but subvertpy_0.6.1-1ubuntu1.dsc and subvertpy_0.6.1-1ubuntu1.diff.gz too [08:21] I can't cover it in this session, but if you take a look at https://wiki.ubuntu.com/PbuilderHowto you'll learn about a tool that test-builds packages for you [08:21] it will expect such .dsc files from you [08:21] ok, let's crack on [08:22] dholbach, i didnt find any files there [08:22] on debuild command [08:22] is pbuilder an alternative to chroots for this? [08:22] Pollywog: it will set up a chroot :) [08:22] Pollywog: automatically [08:22] balarka: were you in subvertpy-0.6.1 when you ran debuild? [08:22] dholbach, yes [08:23] I got this warning: "Exception: apr-config not found. Please set APR_CONFIG environment variable" [08:23] balarka: then cd .. and ls there [08:23] oh ok [08:23] blfgomes: safe to ignore for now [08:23] ok [08:23] ok... another handy tool in devscripts is debdiff [08:23] if you run debdiff subvertpy_0.6.1-1build1.dsc subvertpy_0.6.1-1ubuntu1.dsc [08:24] debdiff subvertpy_0.6.1-1build1.dsc subvertpy_0.6.1-1ubuntu1.dsc [08:24] dholbach, oh got it [08:24] it will show you the differences between the two source packages [08:24] and order matters! [08:24] exactly [08:24] can you all please put the output into http://paste.ubuntu.com and give us the link here so we can review them together? [08:25] dholbach, maco so what is the purpse of this step? [08:25] to confirm ourselves abt the change we did? [08:25] by generating diff between two versions? [08:25] balarka: show the differences between the original source package (we downloaded initially) and the new source package [08:25] balarka: many developers in ubuntu prefer debdiffs for updating packages [08:25] balarka: it's what you'd attach to a bug report saying "this is how I fixed it" [08:26] balarka: this includes the debian/* changes as well as the patch [08:26] ooh [08:26] ok [08:26] http://paste.ubuntu.com/142603/ [08:26] it just cuts a few steps out for the people who can actually upload this stuff [08:26] namely, all the steps you just did [08:27] http://paste.ubuntu.com/142607/ [08:27] dholbach, when i run the command it says debdiff: fatal error at line 266: [08:27] Can't read file: subvertpy_0.6.1-1ubuntu1.dsc [08:27] silentsno: "0.6.1-1ubuntu2" -> "0.6.1-1ubuntu1", "intrepid" -> "jaunty", I'd also line wrap the changelog entry - other than that: great work! [08:27] http://paste.ubuntu.com/142606/ [08:27] http://paste.ubuntu.com/142608/ [08:27] blfgomes: perfect [08:28] dholbach, i didnt get the mistake i did [08:28] Pollywog: "0.6.1-1ubuntu" -> "0.6.1-1ubuntu1", also the linewrap to 80 characters per line would be nice, other than that: GREAT [08:28] error http://paste.ubuntu.com/142609/ [08:28] balarka: what's the last 5 lines of output? [08:28] posingaspopular: just do debdiff subvertpy_0.6.1-1build1.dsc subvertpy_0.6.1-1ubuntu1.dsc [08:29] debdiff subvertpy_0.6.1-1build1.dsc subvertpy_0.6.1-1ubuntu1.dsc [08:29] debdiff: fatal error at line 266: [08:29] Can't read file: subvertpy_0.6.1-1ubuntu1.dsc [08:29] 1st line is the comand i typed [08:29] balarka: is there a file named subvertpy_0.6.1-1ubuntu1.dsc? [08:29] balarka: did you run debuild -S -us -uc as above? [08:29] dholbach, nope [08:30] maco, i did [08:30] maco, i can do it again [08:30] balarka: then something must have gone wrong there before [08:30] balarka: what .dsc's *do* you have? [08:30] that debdiff output is what you'd attach to the bug report as a solution, https://wiki.ubuntu.com/SponsorshipProcess explains how to get your patch uploaded to Ubuntu! [08:30] (after you test-built the package and tested the package a bit) [08:31] maco, i can see only one 1build1.dsc [08:31] here [08:31] then it sounds like debuild failed [08:31] right that worked [08:31] I'd like to invite you all to #ubuntu-motu and ubuntu-motu-mentors@lists.ubuntu.com to ask questions you have about everything related to packaging stuff [08:31] maco, so what do i do now? [08:31] balarka: try it again and see if it errors at all [08:31] posingaspopular: can you pastebin it? [08:31] there were a bunch of other questions before [08:31] maco, so i try the debuild command inside subverty dir [08:31] anything you'd like to ask? [08:31] ? [08:32] balarka: yes [08:32] dholbach: the LP: #123456 syntax, it closes on upload, but what if its a FTBFS? [08:33] http://paste.ubuntu.com/142612/ [08:33] maco: the bug will be closed on upload (when the uploaded source package is accepted) [08:33] is this all different when the sources use cmake instead of automake? [08:33] maco, this is what i get http://paste.ubuntu.com/142612/ [08:33] maco, dholbach after debuild command [08:33] //time [08:33] balarka: I guess you didn't save the changes you made to debian/changelog [08:34] http://paste.ubuntu.com/142613/ [08:34] balarka: I'd suggest reading up in the log again and re-try - sorry [08:34] oh [08:34] dholbach, sure.. [08:34] Pollywog: that's a great question [08:34] dholbach, i will do that [08:34] balarka: thanks [08:34] I have had trouble making debs for KDE4 due to cmake [08:34] Pollywog: the great thing about the way that Ubuntu and Debian packages are built is that we have one build process wrapped around all kinds of upstream software [08:35] dholbach, so whats next then? [08:35] dholbach, we got the diff generated [08:35] balarka: we're answering a bunch of questions [08:35] oh ok [08:35] dholbach: ok so the order of things that happen is fuzzy for me. helpful sponsor uploads the debdiff, buildd does stuff, then accept, then close? [08:35] dholbach, i mean in the process of sending upstream [08:35] so no matter if it's a python distutils package, or it uses autotools or cmake, there's always a way to build the package [08:36] balarka: in this case, the patch came from upstream, so nothing to do [08:36] Pollywog: I'd suggest taking a look at similar source packages (that use cmake already) and compare [08:36] maco, oh ok [08:36] I will do that, thanks [08:36] maco, but if we invent the bug fix [08:36] maco, how to proceed from here? [08:36] posingaspopular: looks great, there's just one thing I'd change a bit: [08:36] * subvertpy/delta.py apply revision 2016 from upstream to fix python 2.6 depreciation. (LP #323270) [08:36] * subvertpy/delta.py: apply revision 2016 from upstream to fix python 2.6 depreciation. (LP: #323270) [08:37] posingaspopular: (note the colons) [08:37] balarka: in that case, send the patch to upstream (some will want a but + attachment, others want mail on their mailing list, it varies) and give them a link to the LP bug of people saying it works [08:37] maco: so the way things would work from here would be something like: [08:37] and the debian/rules seem to be different for KDE4 packages, but I suspect that will be covered in a future session [08:37] - test-build the package [08:37] - test the package [08:37] what colons dholbach? [08:37] posingaspopular: after the filename [08:37] - attach debdiff to bug report [08:38] dholbach: yeah the two steps everyone forgets :P [08:38] - subscribe sponsors team who review the patch [08:38] - they review it [08:38] - upload it [08:38] - bug gets automatically closed [08:38] - build attempted [08:38] - fix delivered to the world [08:38] sure the package could fail to build [08:38] but that's usually a new bug ;-) [08:38] ok then [08:38] maco, thanks [08:38] i dont follow, what is wrong there? [08:38] posingaspopular: also the colon in (LP: #323270) [08:39] maco, what is LP btw.. [08:39] hrm that reminds me that i got a build failure email... [08:39] posingaspopular: it's the syntax [08:39] LaunchPad [08:39] balarka: launchpad in two letters [08:39] oh ok :P [08:39] Pollywog: can you follow up with that suggestion at https://wiki.ubuntu.com/Packaging/Training ? [08:39] pkpdjh: you had a question too? [08:39] dholbach: if i got a build failure email due to "its beta, the repos were broken when the buildd went through" how do i try to get it rebuilt for that architecture? [08:40] dholbach: did my debdiff look alright? (http://paste.ubuntu.com/142607/) [08:40] k I thought that was for the ppl who present the trainings [08:40] maco: ask in #ubuntu-motu for somebody to attempt a rebuild for you [08:40] I will do that [08:40] Pollywog: there's a "suggested sessions" or somtehing [08:40] dholbach: ok thanks [08:40] Crusher: sorry, must have missed it - checking it out [08:40] Crusher: that looks perfect [08:40] cool [08:40] wow... great work everybofy! [08:41] pbuilder one? please? i have no idea how to make a new pbuilder when i reinstall :( [08:41] feel yourselves clapped on the shoulder [08:41] maco: please put it on the wiki page [08:41] i did :P [08:41] ok... any other questions? [08:41] dholbach and others: thanks for the session. It was great [08:41] great session dholbach, thankyou [08:41] what syntax? [08:42] posingaspopular: (LP: #123456) [08:42] dholbach: many thanks for your time [08:42] thanks dholbach. [08:42] thanks a lot everybody for participating and helping out [08:42] dholbach: thanks for the session! [08:42] I hope you found it fun and helpful and I'll see you in the next sessions too [08:42] dholbach: thanks for the session. look forward to more of them [08:42] See ya all in the next one! [08:42] https://wiki.ubuntu.com/MOTU/GettingStarted has some reading material until the next session! [08:42] somebody mentioned some blog of yours dholbach... [08:43] nanbanjin: you mean http://daniel.holba.ch/blog ? [08:43] nanbanjin: or http://ubuntupackaging.wordpress.com/ ? [08:43] the latter [08:43] that was me that mentioned it [08:44] ah ok [08:44] great [08:44] My question before was about what to do when patches don't work the first time. [08:44] pkpdjh: ah yes... [08:44] dholbach: I was just curious if there's a way to track changes and find the disconnect. (Sorry, I'm a noob.) [08:45] pkpdjh: that's where revision control systems are really helpful - they make it much much easier to either merge a complete branch (plus its history) or just cherry-pick a certain change [08:45] pkpdjh: when you just work with the diff and patch tools, you have to live with their limitations [08:45] Sure. [08:46] dholbach: I had one other problem. I had some syntax errors or something in my debian/changelog file. [08:46] patch is quite clever when thing just moved around a few lines or something like that, but if the context around it changed, it simply gives up and you need to merge manually [08:46] pkpdjh: what happened there? [08:46] I got an error that said "unrecognized line" [08:46] dholbach: Thank you for your time and patience! The whole concept of having a session like this is really incredible. [08:47] pkpdjh: can you put up the log of it somewhere? [08:47] blfgomes: I'm very glad you enjoyed it - there's more to come and I hope we'll have a lot of people fixing bugs soon :) [08:49] dholbach: In my noobness, I will have to find time to learn how everyone was pasting their logs before I get too deep over my head. [08:49] pkpdjh: oh, don't worry, just load up http://paste.ubuntu.com and paste the log of the error in there [08:50] right now I can't tell where the "unrecognized line" error comes from [08:50] thank you very much dholbach. I ran all in the sandbox of my imagination but will go through the logs later and try it on my own [08:50] nanbanjin: awesome... hope you enjoyed it [08:50] dholbach: okay it is there. [08:50] pkpdjh: can you post the link here? [08:51] http://paste.ubuntu.com/142622/ [08:51] gracias [08:51] pkpdjh: can you paste the top entry of debian/changelog ? [08:52] http://paste.ubuntu.com/142625/ [08:53] pkpdjh: try putting two spaces instead of one in front of the "*" [08:53] so " * bla bla bla" instead of " * bla bla bla" [08:53] (if that makes sense) [08:54] damn whitespace! [08:54] That fixed it. [08:54] super [08:54] it's very picky, I agree :-) [08:54] * maco bets guido van rossum had a hand in this [08:54] no, I doubt it [08:55] most of the machinery behind devscripts etc is written in perl [08:55] dholbach: Okay. Now I have to play catch up on the rest of the tutorial. I followed along, but I couldn't do the steps. [08:55] O_O [08:55] * maco hides [08:55] pkpdjh: just let me know how it goes [08:55] once you figured out dch, debdiff, debuild, etc. and used them a couple of times, you'll see that that's just "tools" [08:55] dholbach: you are going to have to point out this syntax you are talking about, i dont see it [08:56] and the interesting part is the "detective stuff" like chasing down where to find the patch and so on [08:56] dholbach: I'm sure it will go fine, but it will probably go tomorrow. I'm in the western U.S.A. ;) [08:56] posingaspopular: what I meant is: if you want the bug to be automatically closed, you have to use the "(LP: #123456)" syntax [08:57] posingaspopular: and can't use "(LP: 123456)" because the build daemons don't understand it [08:57] posingaspopular: actually it's LP: # [08:57] as in teh open parenthesis, L, P, colon, space, hash, .... [08:57] * maco slaps self [08:57] pkpdjh: enjoy it and sleep tight [08:57] no more lex! [08:57] I'll put up the logs in a bit [08:57] have a great day everybody [08:57] oh okay, that makes sense :P [08:57] # is the bug number [08:58] yeah [08:58] or the bug number is after the "#" sign [08:58] im sitting here getting all worked up because i couldn't figure out what you were talking about [08:58] lol [08:59] don't get worked up just because of that :-) [09:02] ok... take care and see you in #ubuntu-motu === _Purple_ is now known as _Purple_away [11:12] good day === |Crusher| is now known as Crusher [14:24] hey guys, there is in somewhere the logs from the session of today ? [14:31] Andphe: they should end up being linked on the wiki page about training sessions [14:34] maco, thank you [14:34] it's linked off planet.ubuntu.com and off http://ubuntupackaging.wordpress.com/2009/04/02/first-packaging-training-session/ [14:36] Hobbsee, thanks [14:37] y/w === _Purple_away is now known as _Purple_ [16:46] is there any archive for the class this morning? [16:46] or log [16:46] ikt: https://wiki.ubuntu.com/Packaging/Training/Logs [16:47] https://wiki.ubuntu.com/Packaging/Training/Logs/2009-04-02 [16:47] cheers :) [17:12] I forgot to ask the question I wanted to ask last night [17:13] what if a package has no dbg package? [17:14] for example, I cannot find a dgb or dbgsym package for konqueror but konqueror has an annoying bug === santiago-pgsql is now known as santiago-ve === foursixnine is now known as santiago-ve === error404notfoun1 is now known as error404notfound === Guest31330 is now known as eld1e6o [18:52] Today's training happened already, correct? [18:53] dapatrick: yes, you can find logs here: https://wiki.ubuntu.com/Packaging/Training/Logs/2009-04-02 === pleia2 changed the topic of #ubuntu-classroom to: Ubuntu Classroom || https://wiki.ubuntu.com/Classroom || https://lists.ubuntu.com/mailman/listinfo/ubuntu-classroom | Upcoming: 9 Apr @ 00:00 UTC: Q&A Session: Linux Permissions; 9 Apr 2009 @ 12:00 UTC: bzr builddeb --in-15-minutes | Run 'date -u' in a terminal to find out the UTC time [19:00] pleia2: Thanks. I totally spaced on the time. For some reason I was thinking 6:00p.m. UTC. [19:01] oops :) we list all times as 24 time, so that would be 18:00 [19:01] s/24/24 hour [20:38] Hy , I need informations about packing lessons [20:38] date -u [20:42] can someone help-me ? I need informations about ubuntu packing lessons === foursixnine is now known as santiago-ve