/srv/irclogs.ubuntu.com/2008/02/18/#ubuntu-classroom.txt

=== baggio is now known as DannyBoy
=== DannyBoy is now known as Daniel
DanielAny MOTU available for chat?01:48
DanielI'm still here01:58
DanielAny MOTU available for chat?01:58
naliothDaniel: have you looked in #ubuntu-motu ?02:07
=== dholbach changed the topic of #ubuntu-classroom to: Please join #ubuntu for support | This channel used for scheduled classes and invitational tutoring | Ubuntu Developer Week info: Information and Logs: https://wiki.ubuntu.com/Ubuntu
=== dholbach changed the topic of #ubuntu-classroom to: Please join #ubuntu for support | This channel used for scheduled classes and invitational tutoring | Ubuntu Developer Week info: Information and Logs: https://wiki.ubuntu.com/UbuntuDeveloperWeek | Ubuntu classroom transcripts: https://wiki.ubuntu.com/ClassroomTranscripts | How to ask questions: https://wiki.ubuntu.com/UbuntuDeveloperWeek/Rules
=== asac_ is now known as asac
=== Ketzal is now known as Ketzal_out
=== pochu_ is now known as pochu
warp10Hi all!11:46
=== Ketzal_out is now known as Ketzal
* popey hugs dholbach 14:13
dholbachhey popey14:14
* dholbach hugs popey back :)14:14
=== dholbach_ is now known as dholbach
KEBAdamn i want that it is 16:00 :P14:41
dholbachso everybody's excited already? :-)14:42
tuxmaniacdholbach, the excitement seems to be not there currently ;-)14:45
dholbachtuxmaniac: patience - wait another 75 minutes ;-))14:45
* tuxmaniac goes for dinner in the meantime14:46
quiteboink. UTC.14:47
dholbachhey jono - excited about UDW? :)15:34
jonodholbach: wooo! :)15:37
dholbach:-)15:38
flicckdholbach : I'm mostly interested in the Packaging 101 session, do you mind if I lurk in the earlier classes?15:39
* jetsaredim was thinking the same15:39
dholbachflicck: absolutely not - it's definitely worthwhile lurking in the other sessions15:40
flicckthank you for the welcome, will do15:40
danbhfiveis packaging 101 coming up?15:45
dholbachdanbhfive: it's 15:46 UTC - the schedule is up at https://wiki.ubuntu.com/UbuntuDeveloperWeek15:46
danbhfivekk, thanks dholbach15:46
dholbachdate -u  is your friend :-)15:46
emgenthello people15:47
fftbhi, patching packages is here?15:50
* pitti waves15:51
dholbachfftb: yes, in 9 minutes15:51
fftbgreat thx15:51
dholbachWELCOME EVERYBODY!15:51
dholbachThis is the first ever Ubuntu Developer Week and I hope you're all very excited15:51
dholbachbecause I am :-)15:51
emgent:)15:51
dholbachThe schedule is up at https://wiki.ubuntu.com/UbuntuDeveloperWeek15:51
dholbachand the rules are up athttps://wiki.ubuntu.com/UbuntuDeveloperWeek/Rules15:51
jetsaredimare there going to be transcripts of these sessions for people who can't make it?15:52
dholbachbasically: please keep all chatter out of this channel, ask questions in #ubuntu-classroom-chat instead15:52
dholbachand make sure you prefix them with QUESTION: ...15:52
dholbachso they're easier to spot15:52
dholbachjetsaredim: yes, there are links on the schedule page already and they will be filled up with the logs afterwards15:52
dholbachare there any other questions before we start?15:53
jetsaredimdholbach: ok - sorry must've missed that15:53
pittialso, most of the topics should already have documentation in the wiki15:53
dholbachjetsaredim: no problem15:53
dholbachthe first speaker is Martin Pitt, also  known as pitti15:54
* pitti bows15:54
dholbachhe's the author of jockey (formerly knows as restricted-manager), apport and a bunch of other tools, in his days as our security king he had to touch myriads of packages, so he knows a lot about patching packages15:54
dholbachwe still have 5 minutes until the session starts so you all have time to grab a comfy chair and your favourite drink before we start15:55
pittiso, who is actually here for the patching packages hands-on training session?15:55
dholbachbe gentle with pitti, we still need him :)15:55
pittiheh15:56
* jetsaredim is here to soak up as much as possible15:56
pittijetsaredim: welcome!15:56
* TuxCrafter i am here for the packaging training and want to now when the end of the session is here an when there are pauses?15:56
amachuhands on training session?15:56
pittisessions start on the hour, for a little less than an hour15:56
pittiamachu: yes; a theoretical speech about patching wouldn't be very useful, I guess15:57
pittithen you can as well just RTFM :)15:57
amachupitti: should help15:57
* TuxCrafter is back in 10 min15:58
agoliveiraWow... lot's of people here. Congrats dholbach!15:58
jonodon't forget people - you can start your MOTU adventure at https://wiki.ubuntu.com/MOTU/GettingStarted15:58
dholbachagoliveira: yeah, everybody's excited :)15:58
dholbachgood point, Mr. Bacon :)15:58
* dholbach hugs jono15:59
agoliveirajono: I'm still waiting for the movie :)15:59
jonoagoliveira: heh15:59
* pitti hugs dholbach for organizing this event15:59
* jono hugs dholbach :)15:59
* dholbach hugs jono and pitti :)15:59
* pitti rings the classroom bell15:59
dholbachenjoy the show!15:59
pittilet's start15:59
* agoliveira gves a apple to pitti16:00
agoliveiraan apple16:00
pittiWelcome to the hands-on training session about how to patch Ubuntu source packages!16:00
pittiThis assumes that you already know what a patch is and how to handle .patch files in general (i. e. for upstream authors).16:00
pittiand want to learn how to put them into packages properly, to get them into Ubuntu16:00
pittiso, can you please quickly raise your hands if you are participating?16:00
* agoliveira here16:00
anoathraise16:01
pittijust to see how big the audience is16:01
* jetsaredim here16:01
chrome___raise16:01
* andy101 raises hand16:01
amachuyep16:01
* bfallik raises his16:01
huats\o/16:01
snhomeraises hand16:01
bananaramaxpong16:01
pittigreat16:01
KaiserClaudiushere16:01
heikkio/16:01
sommeryo16:01
pittiwow16:01
gkulykhere16:01
* Picklesworth raises his hand :)16:01
Lantashyeü16:01
wousseryes16:01
* pitti is impressed16:01
bdgraue·16:01
InsClusoe/ raises16:01
fftbhere16:01
arturodrhi16:01
pittiif anyone has any question, or I'm totally uncomprehensible (sorry for my English, I'm German), please do not hesitate to interrupt and ask *immediately*16:01
fredrehere16:01
* tseliot raises his hand16:01
* TrXuk here16:01
toerthand16:01
* emgent here16:01
pittiOTOH, if you have deeper technical questsions, please ask in #-chat16:02
pittiAlso, don't bother trying to take notes, we'll sort that out at the end. You can fully concentrate on the discussion and examples.16:02
* awalton__ quacks.16:02
pittiLet's begin with a little bit of history:16:02
pitti== Why use separate patches ==16:02
dholbachyes, please take your questions to #ubuntu-classroom-chat and prefix them with QUESTION:16:02
pitti== Why use separate patches ==16:02
pittiIn earlier times, people just applied patches inline (i. e. directly in the source code tree). However, this makes it very hard to extract patches later to modify them, send them upstream, etc. Also this means that new upstream versions are a pain, since they generate a lot of rejections when applying the package diff.gz to them.16:02
pittiWith split-out patches it is much easier to send them upstream, keep track of them, develop them, etc., since you always see which changes belong together.16:03
pittiThe ideal state is an unmodified tarball from upstream, plus clean and separate patches, plus the packaging bits in debian/. That means that lsdiff -z <sourcepackage>.diff.gz only contains debian/.16:03
pittiThe first attempts to split-out patches were pretty trivial: storing patches in debian/patches/, and adding some patch/patch -R snippets to debian/rules. This worked for small patches, but provided no tools for editing these patches, updating them for new upstream versions, etc.16:03
pittiThus several standard patch systems were created which are easy to deploy and provide tools for patch juggling and editing.16:04
pitti---16:04
pittiWhat I would like to do now is to introduce the most common patch systems and show some hands-on demo how to add a new patch and how to edit one.16:04
pittiFor this, I will point at a source package from the current gutsy or hardy archive, quickly explain the patch system, and show how to apply some (braindead) modifications to it. I recommend you to do the same steps in a terminal, so that you get a feeling for the process and can immediately ask questions.16:05
pittiis everyone fine with this approach?16:05
pittiany questsions so far?16:05
=== Square is now known as Squares
pittiIf you want to try the stuff yourself, please do the following commands (on gutsy) as preparation:16:06
pitti  sudo apt-get install dpatch cdbs quilt patchutils devscripts16:06
pitti^ common build tools16:06
pitti  apt-get source cron udev pmount ed xterm16:06
pitti^ the example source packages I'll be explaining16:06
pitti  wget http://people.ubuntu.com/~pitti/scripts/dsrc-new-patch16:06
pitti(I'll talk about this later)16:06
pitti  chmod 755 dsrc-new-patch16:06
pitti(make my script executable)16:06
pittiI deliberately picked the smallest packages I could find16:06
* pitti waits a bit for people to do the preparations; any questions so far?16:07
anoathnope16:07
snhometoo fast16:07
ubuntu_learnerI posted question on ubuntu-classroom-chat on previous Q.16:08
Kaasethu^ common build tools16:08
pittiubuntu_learner: I answered it there, did you see it?16:08
amachuKaasethu: are those that pitti asked to install16:09
pittiah, the ^ means "explanation for the previous line"16:09
pittilike an upwards arrow (sorry if that was unclear)16:09
Kaasethuthanks -16:09
Kaasethunow got it (I think)16:09
pittiso, I think most people should have downloaded the lot now?16:10
pitti== cron: inline patches ==16:10
pittiNo patch system at all, nothing much to say about this.  You directly edit the files in the source tree. This is convenient for a simple and quick change, but will bite back for new upstream versions (see above) and is inconvenient for submitting patches upstream, or reviewing for merges.16:10
pittiif you do 'lsdiff -z <package>.diff.gz' and you see changes which are not in debian/, then you probably have such a package16:10
pittii. e. that's a good counterexample for what we want to achieve with patch systems16:11
pittiall changes are lumped together, not really documented, you don't see which are Debian specific, which are upstream bug fixes, new features, etc.16:11
pitti(some KDE packages have autoconf stuff directly in the diff.gz, but that is ok)16:11
pittiso, I think I do not need to say anything else about cron, unless someone has a question16:11
pittijust look at the diff.gz to see how packaging and code changes are wildly mixed16:12
pitti== udev: separate patches, but no standard patch system ==16:13
pittiif you look at udev's diff.gz, you see that it only has debian/, and split-out patches in debian/patches16:14
pittione per logical change16:14
pittiHowever, udev is the most complicated case of a "patch system", since you have to do all the hard work for creating/managing patches manually.16:14
pittiIn order to make you understand what a patch system does, and to give you a fallback method that will *always* work with any patch system, I handle this first.16:14
pittiThe good news is that you will seldomly be required to actually do this procedure, since for many packages there are nice tools which make things a charm.16:15
pittiThe bad news is that it may seem utterly complicated for people who never did it before, but I would like you to understand what's actually going on behind the curtains of the tools.16:15
pittiSo please do not desperate if you do not fully understand it at first; there's written documentation and you can always take your time to grok it.16:15
* agoliveira rekons udev is evil16:16
pittiThe general approach which all patch systems follow, and which you can always do yourself, is:16:16
pittiagoliveira: for various reasons :-P16:16
pitti1. copy the clean source tree to a temporary directory /tmp/old16:16
agoliveirapitti: Bingo!16:16
pitti2. apply all patches up to the one you want to edit; if you want to create a new patch, apply all existing ones (this is necessary since in general patches depend on previous patches)16:16
pitti3. copy the whole source tree again: cp -a /tmp/old /tmp/new16:17
pitti4. go into /tmp/new, do your modifications16:17
pitti5. go back into /tmp and generate the patch with16:17
pitti  diff -Nurp old new > mypatchname.patch16:17
pitti6. move the newly generated patch to <original source dir>/debian/patches/mypatchname.patch16:17
pittidon't worry, I'll do an example16:18
pittithat's just the general recipe for printing out and hang over your bed/PC/whereever you need it :)16:18
pittiin general we want the following diff options:16:18
pitti-N -> include new files16:18
pitti(which is quite common)16:18
pitti-u -> unified patches (context diffs are ugly)16:18
pitti-r -> recursive16:19
pitti-p -> bonus, you can see the name of the affected function in the patch16:19
pittidoes anyone have a question about the principle method?16:19
pittiok, some hands-on example16:20
pittiopen a shell, ready your fingers :)16:20
pittiudev example 1, let's create a new patch 92_penguins.patch:16:20
pitti  cd /whereever/you/unpacked/the/source/udev-* # -113 on gutsy, -117 on hardy16:20
pitti-> now we are in our original source tree where we want to add a new patch16:21
pitti  cp -a . /tmp/old16:21
pitti-> create a copy of the clean sources as reference tree16:21
pitti  pushd /tmp/old16:21
pitti-> go to /tmp/old; 'pushd' to remember the previous directory, so that we can go back conveniently16:21
pitti  debian/rules patch16:22
pitti-> apply all already existing patches; of course we could use the 'patch' program to do it manually, but since debian/rules already knows how to do it, let's use it. The actual name for the patch target varies, I have seen the following ones so far: patch, setup, apply-patches, unpack, patch-stamp. You have to look in debian/rules how it is called.16:22
pitti(I have a silly script which just attempts all of those until one succeeds :) )16:22
pitti  cp -a . /tmp/new; cd ../new16:22
pitti-> copies our patched reference tree to our new work directory /tmp/new where we can hack in16:23
snhomegot an error with the first patch command16:23
pittioh?16:23
pitti(darn, I tested them two hours ago on hardy)16:23
pittisnhome: you mean with debian/rules patch?16:23
snhomeyes16:23
pitti(see -chat)16:24
pittilet's do a braindead modification now16:24
pitti  sed -i 's/Linux/Penguin/g' README16:24
pitti-> changes the README file; of course you can use your favourite editor, but I wanted to keep my examples copy&pasteable16:24
pittiand now we create a patch between the reference and our new tree:16:24
pitti(btw, please cry out in -chat when I'm too fast)16:25
pitti  cd ..16:25
pitti-> go back to /tmp, i. e. where our reference tree (old) and hacked tree (new) is located16:25
pitti  diff -Nurp old new > 95_penguins.patch16:25
pitti-> generate the patch (Ignore the 'recursive directory loop' warnings)16:25
pittioops16:26
pittisorry, you need "apt-get install debhelper" if you get errors about dh_testdir16:26
* pitti fixes his notes and gives you guys time to catch up16:27
pitti  mv /tmp/95_penguins.patch debian/patches16:28
pitti-> move the patch from /tmp to the source tree's patch directory, where it belongs.16:28
pitti*uff* :)16:28
pittiNow take a look at your shiny new debian/patches/95_penguins.patch.16:28
snhomeerror on the mv16:30
ozanichkovskypushd16:30
jetsaredimyou need to cd back to the udev_xxx dir16:30
pittioops, sorry16:30
pittiyou have to do "popd" before the mv16:30
* pitti wishes there was an "erase previous line" IRC command16:31
pittiso, it's "diff", "popd", "mv"16:32
pittiplease make a noise when you are ready16:32
jsauerready16:32
fftbnoise16:32
ozanichkovskyready16:33
Lantas2ready16:33
KaiserClaudiusready16:33
Picklesworthpeep16:33
arturodrready16:33
chrome___ready16:33
pittiawesome16:33
fredreready16:33
pittidebian/patches/95_penguins.patch looks plausible?16:33
pittiafter that, if you do 'debian/rules patch', you'll see that the patch applies cleanly; please do 'debclean' afterwards to unapply the patches and get back a pristine source tree16:33
pittiif you don't have debclean, install devscripts, or do "fakeroot debian/rules clean" instead16:34
pittiit calls the 'clean' target, which means, clean up all built files, unapply patches, etc.16:35
nareshovfakeroot worked for me16:35
pittiif it complains about missing build dependencies, use the fakeroot command16:35
pittiso, obviously that's not the end of the wisdom, but if you do these steps a couple of times, you should get a feeling for how to create the most complicated patch conceivable16:36
pittiso this procedure is the life safer if anything else fails16:36
pittiPretty much work, isn't it? Since this happens pretty often, I created a very dumb helper script 'dsrc-new-patch' for this purpose.16:37
Don-1Sorry, I'm a bit late, so I decided to read from start, and just catch up. However, I'm stuck at debian/rules patch, gives me the error message:16:40
Don-1dh_testdir16:40
Don-1make: dh_testdir: Command not found16:40
Don-1make: *** [patch-stamp] Error 12716:40
Don-1I've tried both debian/rules build and all the things you mentioned, but it doesn't seem to work. I've also looked in the file, but it doesn't seem to work...16:40
nareshovNeed devscripts ?16:40
dholbachDon-1: please ask questions in #ubuntu-classroom-chat16:40
Don-1Sorry.16:40
Assidhi16:40
dholbachpitti: you fell of the internet?16:42
dholbachminus the missing packages - how did the session go? everything seemed sensible?16:42
snhomeI'm new at this so will need to study what we did16:43
dholbachmaybe we can do some general Q&A while pitti recovers from whatever problem he has right now16:43
ubuntu_learner_Here or at -chat?16:43
=== livewire1 is now known as livewire
dholbachhttp://wiki.ubuntu.com/PackagingGuide/PatchSystems is a guide to patch systems16:43
dholbachjust ask in #-chat and I'll carry over the questions16:43
dholbach<jetsaredim> so, once we patch the package, what then?16:44
dholbachgood question16:44
nareshov:)16:44
dholbachin most cases as an Ubuntu developer you work on existing packages16:44
pittiargh, sorry; my interweb tube broke16:44
pittiwhat's the last line you saw from me?16:44
nareshov21:53 < pitti> Pretty much work, isn't it? Since this happens pretty often, I created a very dumb helper script 'dsrc-new-patch' for this purpose.16:44
pittiugh16:44
pittiok, I'll go on there16:45
dholbachlet me just reply to jetsaredim16:45
agoliveirapitti: it was: "arrrghhhh....."16:45
fftb:)16:45
dholbachjetsaredim: if you can upload your packages directly, you do that, if you can't you use the sponsorship process to get the patched package uploaded - jetsaredim: I'll talk a bit in my session about debdiffs16:45
pittiUsing dsrc-new-patch, above steps would reduce to:16:45
pitti  ../dsrc-new-patch 95_penguins.patch16:46
pitti(.., or wherever you downloaded the script)16:46
jetsaredimdholbach: what about changing the package version, etc how does that get determined16:46
pitti  sed -i 's/Linux/Penguin/g' README16:46
pitti  <press Control-D to leave the subshell>16:46
pittithat looks slightly better, doesn't it? If you like the script, please put it into your ~/bin, so that it is in your $PATH16:46
dholbachjetsaredim: I'll cover that in a different session :)16:46
jetsaredimah16:46
* jetsaredim returns to lurking16:46
pittibut I had to torture you with the close-to-the-metal method for the sake of understanding.16:47
pittiYou might have noticed that we applied all previous patches before creating our's. Does someone have an idea why this is done?16:47
jetsaredimnumbering16:48
nareshovthe patches have numbers?16:48
pittiwell, it's related to that, yes16:48
nareshovsequential, dependant ?16:48
* chrome___ thinks that the patches might depend on each other16:48
awalton__asserting patch interdependencies.16:48
bananaramax<pitti> 2. apply all patches up to the one you want to edit; if you want to create a new patch, apply all existing ones (this is necessary since in general patches depend on previous patches)16:48
pittiPatches can depend on each other,16:48
pittii. e. patch 22 can change the same file that patch 7 did, and patch 22 might not even apply to the pristine upstream source.16:49
pittiThat's why you will commonly see numeric prefixes to the patch files, since they are applied asciibetically in many patch systems (including the application of patches in udev).16:49
pittiSince above procedure is so hideously complicated, patch systems were invented to aid you with that.16:49
pittiLet's look at the most popular ones now (they are sufficient to allow you to patch about 90% of the archive's source packages; for the rest you have to resort to the manual approach above).16:50
pitti== pmount: cdbs with simple-patchsys ==16:51
pitticdbs' simple-patchsys.mk module matches its name, it has no bells and whistles whatsoever. However, it is pretty popular since it is sufficient for most tasks, and long ago I wrote a script 'cdbs-edit-patch' which most people can live with pretty well. This script is contained in the normal cdbs package.16:51
pittiMany Ubuntu packages use the cdbs build system; you can look at the "Build-Depends:" line in debian/control (it has cdbs) to check16:51
=== Heres is now known as Her0
pittior look in debian/rules whether it has includes for /usr/share/cdbs16:52
pittiif you have that, then you can use the following script16:52
pittiYou just supply the name of a patch to the script, and depending on whether it already exists or not, it will create a new patch or edit an existing one.16:52
pittieveryone please look in debian/patches, debian/rules to get a feeling how it looks like16:53
pittiso, let's mess up pmount a bit16:53
pittiand add a new patch16:53
pitti  cd /whereever/you/unpacked/the/source/pmount-0.9.1616:53
pitti  cdbs-edit-patch 07-simple-readme.patch16:53
pitti(drops you into a subshell for editing again, similar to dsrc-new-patch)16:53
pitti  echo 'This should document pmount' > README16:53
pitti(some braindead modification)16:53
pitti  <press Control-D to leave the subshell>16:53
pittieasy, isn't it?16:54
pittithis will take care of applying all patches that need to be applied, can change patches in the middle of the stack, and also create new ones16:54
pittiEditing an already existing patch works exactly the same way.16:54
pittiso I won't give a demo16:54
pittiquestions?16:55
pittisorry, my falling off the internet costed me 5 minutes, so I'll just quickly run through the other major patch system before I conclude16:55
pitti== ed: dpatch ==16:56
pittidpatch is a pretty robust and proven patch system which also ships a script 'dpatch-edit-patch'16:56
pittipackages which use this build-depend on 'dpatch', and debian/rules includes 'dpatch.mk'16:56
pittithat script dpatch-edit-patch is actually pretty similar to the other two scripts I talked about16:57
pittiThe two most important things you should be aware of:16:57
pitti * dpatch does not apply debian/patches/*, but instead applies all patches mentioned in debian/patches/00list, in the mentioned order. That means that you do not have to rely on asciibetical ordering of the patches and can easily disable patches, but you have to make sure to not forget to update 00list if you add a new patch.16:57
pitti(forgetting to update 00list is a common cause of followup uploads :-P )16:57
pitti * dpatch patches are actually scripts that are executed, not just patches fed to 'patch'. That means you can also do fancy things like calling autoconf or using sed in a dpatch if you want.16:58
pittiusing dpatch for non-native patches is rare, and normally you do not need to worry about how a .dpatch file looks like16:58
pittibut I think it's important to mention it16:58
pittiThe manpage is very good and has examples, too16:58
pittiThere is a wiki page https://wiki.ubuntu.com/MOTU/School/PatchingSources which has examples for the most common patch systems16:59
pittiand how to use them16:59
pittiit's a good cheatsheet when you will actually get to this16:59
dholbachpitti: http://wiki.ubuntu.com/PackagingGuide/PatchSystems :)16:59
pittibut with above tools you should be able to change the vast majority of packages16:59
pittithanks for your attention!16:59
pittiBTW, I'll do the same session on Friday again17:00
pittiand hopefully catch up with the other stuff17:00
amachu:-)17:00
zeethpitti: thank-you17:00
arturodrthanks pitti17:00
chrome___thanks pitti17:00
PicklesworthNice, pitti! Very helpful :)17:01
jsauerthanks pitti17:01
fredrethan you17:01
PicklesworthThat's one more directory starting to make sense...17:01
dholbachthanks a lot pitti17:01
Lantas2thanks!17:01
dholbachnext up we have cprov and mrevell, two launchpad hackers who can tell you a lot about a very cool feature of Launchpad called PPA: Personal Package Archives17:01
KaiserClaudiusthanks alot17:01
Don-1Thank you!17:01
vicantrethanks mate! It was truly helpful17:02
dholbachCelso and Matthew: the stage is yours17:02
cprovHi all, Welcome to the Personal Package Archive (PPA) session.17:02
dholbachfor those of you who have joined in later: please ask questions in #ubuntu-classroom-chat and prefix them with QUESTION: ...17:02
cprovJust for curiosity, say "me" if you are attending the PPA session.17:02
mrevellme17:02
* jetsaredim me17:02
dholbachme too17:03
soneilme17:03
rulusme17:03
* tamrat me17:03
ubuntu_learner_me17:03
awalton__+117:03
arturodrme17:03
fredreme17:03
InsClusoeme17:03
jsauerme17:03
Don-1me - half of the session.17:03
Picklesworthme17:03
corevetteme17:03
hollowayme17:03
zeethme17:03
* nareshov too17:03
barccme17:03
vicantreme17:03
tvelocityme17:03
Grazienome17:03
pwneddme17:03
dholbachrock on Launchpadders!17:03
acacsme17:03
snhomeme listening17:03
cprovwow, lot of people here17:03
mrevellThis is great, thanks for coming everyone :)17:04
amachume17:04
cap10morganme17:04
Scirime lurking ;)17:04
cprovso, as daniel said, make question on #-chat and before anything else thanks for coming.17:04
cprovSo, first obvious question is "What is this PPA thing ?"17:05
cprovLaunchpad provides the infrastructure to process, build and publish uploads for ubuntu primary archive.17:05
cprovthe same set of sub-systems is available for all users via Personal Package Archives (PPA) in their own restricted archive.17:06
=== Martinp24 is now known as Martinp23
cprovi.e., it's possible to have a Martin Pitti archive or a Mozilla Development Archive.17:07
cprovdoes it sound like a good definition for you all ?17:07
cprovplease say '+1' if it's fine or add your comment.17:08
Don-1+117:08
tamrat+117:08
cprov517:08
cap10morgan+117:08
nareshov+117:08
arturodr+117:08
cprov417:08
chrome___+117:08
TuxCrafteri have to go now17:08
dargol+17:08
tvelocity+117:08
icicle+117:08
cprov317:08
TuxCrafterthanks for everything17:08
dargol+117:08
jsauer+117:08
InsClusoe+117:08
cprov217:08
p3n9+117:08
fredre+117:08
cprov117:08
TuxCrafter+117:08
corevette+117:08
Lantash+117:08
Grazieno+117:08
awalton__+117:08
cprovhappy users :)17:09
danbhfive+117:09
pwnedd+117:09
cprovIn order to use PPA we require a valid user/team in Launchpad17:09
lengau+117:09
cprovand a quick 'activation' procedure.17:09
cprovhttps://help.launchpad.net/PPAQuickStart/ describes the procedure in details.17:10
cprovyou have to accept the PPA terms of use (ToU) which basically assures we are not giving you space to do illegal actions17:11
cprovso, it's up to the users to certify that they are coping with the restrictions imposed the source license in question.17:12
cprovLegal issues should be reported to a launchpad administrator and the culprit PPA will be disabled immediately.17:13
cprovok, enough legal statements for today.17:13
cprovlet's go for the hand-on training.17:13
cprovPPA, as you would expect, requires users to dominate the current development tools (used in ubuntu, debian and other debian-like distribution)17:14
cprovLet's assume that all users here are aware of https://help.ubuntu.com/6.10/ubuntu/packagingguide/C/index.html for packaging issues17:15
cprovand have a package source ready to be uploaded.17:16
cprovThe first question is "how to build the source package for my PPA ?"17:16
cprovif you are using orig.tar.gz, ensure you are using the same file already uploaded in ubuntu primary archive.17:17
cprovThis is a very good way to save bandwidth for you uploads. You don't have to re-upload orig files already published in ubuntu17:18
cprovso, you upload will be small and quick17:18
cprov`debuild -S` will do17:18
cprovif it's a new source, you do have to upload the orig (`debuild -S -sa`), although, you have to do it only for the first version of the source17:19
cprovsubsequent upload can omit the orig, PPA system will retrieve it from the context archive.17:19
cprovall clear, guys ? you are too quiet17:20
snhomelistening17:20
cprovAm I going to fast ?17:20
hollowayit's confusing for the first time17:20
Unksigo on :)17:20
taconespeed is ok for me :)17:20
zeethcomfortable sir17:20
dargolgo on17:20
snhome& girls :)17:20
cprovgreat, feel free to stop anytime with questions17:20
dholbachcprov: there were a bunch of questions on #-chat :)17:21
cproverr, I was expecting the bot to ask them here ... How should I proceed ?17:22
cprovdholbach: shall I paste the question here and answer it .17:22
dholbachcprov: good idea17:22
dholbachthat way they end up in the log too17:23
cprovQUESTION: Is PPA specific to ubuntu or for any project hosted on launchpad.net17:23
cprovwell, PPA can only host packages for ubuntu distribution, atm17:23
cprovhowever, any person, team can host specific packages for any project hosted or not in Launchpad17:24
cprovuhm, confusing answer ... IFW, project and PPAs are not exactly related.17:24
cprovdoes it answer your  question ?17:25
zeethhow about for debian?17:25
eddyMulor ubuntu derivatives?17:25
cprovzeeth: you can cross-install ubuntu package in debian systems17:26
zeeththanx17:26
InsClusoeCan we say that PPA is similar to Sourceforge or freshmeat?17:26
cprovzeeth: but, dependending on the package it might cause some pain.17:26
cprovInsClusoe: no, I'd compare  those directly17:26
zeethummm..17:26
cprovInsClusoe: can you specify how do you see such relationship ?17:27
cproverr, I would *not* compare17:27
cprovsorry.17:27
cprovQUESTION: If I want to build a software that is not yet ready for integration with any distro, does it qualify to be hosted?17:27
InsClusoecprov: :-) I inferred from this... "any person, team can host specific packages for any project hosted or not in Launchpad"17:27
cprovInsClusoe: well, PPA allows users to upload *any* (respecting license issues) source package, get it built and distributable under your responsibility17:28
InsClusoeok.. I think I got it... Packages refer to binary packages... That means, source and rules for making binary package... And that, most certainly, is different from hosting projects...17:29
cprovthis statement sort of also answer the last question ...17:29
cprovInsClusoe: exactly, you can "package" any upstream source (hosted or not in LP)17:29
InsClusoecprov: Yup.. Gotcha. Thanks. Sorry for disrupting.17:30
cprovQUESTION: how do I know if a file is already uploaded into ubuntu archive (e.g. gutsy has v1.0, hardy has v3.0. I want to package v2.0)17:30
cprovuhmm, check the launchpad interface, I guess, `apt-cache`, etc17:31
cprovpretty vague,  I know, feel free to ask a more concrete question if you want.17:32
cprovQUESTION: I'd like my package(s) to be available in multiple distributions (Feisty, Gutsy, Hardy, ..). How to do this the easiest way? Is it possible without reuploading three times with only a changed distribution in the changelog?17:32
cprovas know, the poll-based archive topology we use in ubuntu and all PPAs doesn't allow files to be republished17:33
cprovso you can (and should) upload a foo-bar_1.0 source only once17:33
cprovin the primary archive we provide tools to /copy/ publications across suites (dapper, gutsy, hardy, etc)17:34
cprovthis feature is not yet available for PPA (via the UI)17:34
cprovPPA users can use one of the alternatives:17:34
cprov1) request a *copy* via launchpad-questions given the exact directives,  source name and version, whether to copy binaries or not, and destination suite17:35
cprov2) upload the same source using another version or version prefix (~dapper1, ~feisty1, etc)17:36
eddyMul1) is launchpad-questions a mailing list?17:36
cprovno the launchpad question sub-system17:36
cprovhttps://answers.edge.launchpad.net/launchpad/+addquestion17:37
eddyMuleddyMul: got it. thanx17:37
cprovas you all might suspect, the alternative 2 will be faster17:38
cprovWe plan to offer 'copy' UI for PPAs during the next month.17:38
cprovok, we have discussed WHAT  to upload. Now let's sort WHERE17:38
cprovthere are two tools available to upload packages: dput and dupload17:39
cprov(if you are brave enough, you can use a simple ftp client, but it's boring and error prone)17:39
cprovlet's try a dput example config.17:40
cprov[my-ppa]fqdn = ppa.launchpad.net method = ftp incoming = ~your-launchpad-id/ubuntu/ login = anonymous allow_unsigned_uploads = 017:40
cproverr ...17:40
cprov[my-ppa]17:41
cprovfqdn = ppa.launchpad.net17:41
cprovmethod = ftp17:41
cprovincoming = ~your-launchpad-id/ubuntu/17:41
cprovlogin = anonymous17:41
cprovallow_unsigned_uploads = 017:41
cprovthis section should be appended to you ~/dput.cf file17:41
dholbach~/.dput.cf17:42
cprovthe 'my-ppa' dput target defines the location and the path to be used in you upload17:42
cprovdholbach: yes, '.' , thanks17:42
cprovdon't feel obsessed to copy this irc snipped, it's all in https://help.launchpad.net/PPAQuickStart/17:43
cprovthe source upload processing is done every 5 minutes, so that's the time you should wait before getting a upload notification email17:43
cprovit will be either an 'acceptance'  or a "rejection" message17:44
cprovthe system will list you all the problem that cause the upload to be rejected, if it was the case17:44
cprovonce the source was accepted, you should wait up to 20 minutes to have it published in you public archive17:45
eddyMulcprov: "upload processing is done every 5 minutes, so [wait]": it would be great to put this info in the PPAQuickStart page   ;-)17:45
hollowaycprov, can you give some errors? like beginners doing all the time?17:45
cprovat this point `apt-get source <just uploaded>` should work17:45
cproveddyMul: sure :) I'll add17:46
cprovholloway: yes, most of the users upload sources targeted to 'unstable' distribution (as they come from debian)17:46
hollowaycprov, thx, so there are only the 4 we know from ubuntu?17:47
cprovthis mistake can be fixed by: 1) create a proper entry in the debian/changelog setting a ubuntu suite instead of the original debian suite OR 2 ) using the changesfile override feature in upload path.17:47
cprovyou can have a dput target that forces 'dapper' doesn't matter what is said in the changesfile17:48
cprov[my-ppa-force-dapper]17:48
cprovincoming = ~your-launchpad-id/ubuntu/dapper17:48
cprov(the other fields should remain the same ...)17:49
tamratQUESTION: (i understand the answer may be long but well - i think it is useful): which steps/test should/can be done before uploading your package, (after testing building of course). I don't want to try to upload 10 times to get a different error every time (I'm on 2 rejected uploads now ;-)17:49
cprovit will upload pristine source from debian or other distribution straight to dapper in your PPA.17:49
cprovtamrat: it's hard to say ... you can build the source and the binaries successfully locally, but still not getting all points required to upload the source fixed17:50
cprovtamrat: it really depends on the error and you packaging experience, I'm afraid to say.17:50
cprovholloway: another very common mistake it to upload binaries to PPA17:51
hollowayok17:51
cprovholloway: only a single and signed source will be accepted.17:51
cprovholloway: so, ensure you build source packages with `debuild -S`17:52
hollowaycprov, got it :)17:52
cprovokidoki, we know WHAT and WHERE ... let's go for the WAIT stage ;)17:52
cprovonce the source is 'accepted' you should *wait*17:53
cprovup to 20 minutes to have it published in you archive (`apt-get source <just-uploaded>`) (already said)17:54
cprovup to 1 hours to have you build queued (access +me/+archive/+builds to track them)17:54
dholbachpeople/+me ?17:55
cprovdholbach: yes, '<your lp page>/+archive/+builds'17:55
cprovthe uploader won't receive any message if everything was successfully built and the binaries got published in you archive.17:56
cprovwe only notify the users about *failures*17:56
cprovthe email notification will tell you where to find the information about the failure17:57
cprovand then it's up to you to fix it or not ;)17:57
cprovAn important thing to not about PPA build process is that they happen in a separate environment using the same ubuntu chroots but inside a XEN machine17:58
cprovso, they won't affect or get affect by other jobs, since the XEN guest is resumed before starting any build17:59
cprovouch ... we are running out of time ...17:59
dholbachthere's always the second PPA session on friday, 17:00 UTC :)17:59
dholbachand launchpad-users@lists.canonical.com17:59
dholbach(if you run into problems)17:59
dholbachthanks a lot cprov and mrevell - are there any final questions you want to answer or final announcements?18:00
zeethsure thanx18:00
mrevellThe only announcement is, "Look out for our new release late this week!"18:00
Unksicprov: thank you18:01
dholbachrock on... thanks cprov and thanks mrevell18:01
mrevellThanks dholbach for the opportunity, thanks cprov for doing such a great job. Thanks for everyone's questions and attention.18:01
cprovwell, considering that I couldn't explain all the facets of the PPA system ... you are more than welcome to post questions on https://wiki.ubuntu.com/MeetingLogs/devweek0802/PPAs118:01
cprovI will answer them before the next session18:01
InsClusoeThat's great... Thanks to both of you..18:01
cprovand if you still want to talk, please come to the next session :)18:01
dholbachoh ... and there's of course #launchpad18:02
=== lex79 is now known as lex79|Away
cprovthank you for participating. You are all bright stars !18:02
dholbach:-)18:02
corevettethanks cprov18:02
dholbachok... let's get started with the next session18:02
dholbachIt's Packaging 101 time! :)18:02
dholbachwho's here for the session?18:02
corevetteme18:02
charliecbme18:02
danbhfive+118:02
jsauerme18:02
antcarsame too18:02
zeethcprov: thanx18:02
icicleme18:02
nijabao/18:02
InsClusoeme18:02
mruiz_0/18:02
Unksio/18:02
Kaasethume18:03
barccme18:03
civijacivija++18:03
rulusme too18:03
lengauHi18:03
snhomeme too18:03
Grazienome18:03
shujinme sever18:03
warp10me too!18:03
fredre+118:03
dholbachROCK and ROLL!18:03
dholbachbring it on18:03
vistakillerand me :P18:03
tamrat\o/18:03
hollowayme18:03
zeethme \o/18:03
dholbachfor those of you tuning into the Developer Week just now: please ask your questions in #ubuntu-classroom-chat and prefix them with QUESTION: so they're easier to spot18:03
dargolme18:03
eddyMulme18:04
amachuாை18:04
amachuhi18:04
dholbachwe don't need preparation for this session, just make sure you have a deb-src line in your /etc/apt/sources.list18:04
dholbachif you're using hardy, that's just "deb-src http://archive.ubuntu.com/ubuntu hardy main restricted universe multiverse"18:04
dholbachonce you've added that, please run     sudo apt-get update18:05
dholbachwe'll take a look at a small package I made a while ago called gnome-web-photo18:05
dholbach(it does thumbnails of webpages, etc.)18:05
dholbachplease run     apt-get source gnome-web-photo     to get the source18:06
dholbachthe following files have been downloaded:18:06
dholbachgnome-web-photo_0.3-0ubuntu1.diff.gz18:06
dholbachgnome-web-photo_0.3-0ubuntu1.dsc18:06
dholbachgnome-web-photo_0.3.orig.tar.gz18:06
dholbachthe .orig.tar.gz file is exactly what I downloaded from the upstream webpage18:06
dholbachthe .diff.gz the compressed patch I needed to add to make it built in the ubuntu / debian world18:07
dholbachthe .dsc is a description file that has md5sums in it and so on18:07
dholbachapt-get source used dpkg-source -x to extract that and give us gnome-web-photo-0.318:07
dholbachok, let's dive into it18:08
dholbachcd gnome-web-photo-0.318:08
dholbachls debian/18:08
dholbachthese are the files I needed to add to make it build, ie to "package it"18:08
dholbachlet's go through them one by one and let me know if you have questions18:08
dholbachless debian/changelog18:08
dholbachdebian/changelog is necessary to indicate which changes were made by whom and which version number was used18:09
dholbachas a package maintainer it's necessary to document explicitly what you did18:09
dholbachUbuntu is a bit special in the development modell: we maintain everything as teams18:10
dholbachthere are of course people who know a great deal about a package, but there's no BML18:10
dholbach(big maintainer lock)18:10
dholbachso you're free to participate and enhance existing packages18:10
dholbachif you do changes, everybody needs to know why you did them :)18:10
dholbach<corevette> QUESTION: is there a format for a changelog?18:11
dholbachfirst good question18:11
dholbachyes, the format is pretty fixed18:11
dholbachlet's go through all the items one by one18:11
dholbachfirst up is the source package name (I'll talk a bit about source and binary packages in a bit), in our case it's "gnome-web-photo"18:11
dholbachnext up is the version string18:11
dholbachin debian you'd use <upstream version>-<debian revision>18:12
dholbachwhere upstream version means the version that the software authors just released18:12
dholbachand debian revision just being an incremental number (in the simple cases) starting with '1'18:13
dholbachin Ubuntu we add "ubuntu<number>" to indicate that we're changing a debian revision of a package18:13
dholbachas this package is not in debian (yet), it started with    0ubuntu118:13
dholbachnext up is the18:14
dholbachubuntu release we're uploading to18:14
dholbachwe can always only upload to the one that is under development right now18:14
dholbachin our case we could only upload to hardy, but not to gutsy or feisty18:14
dholbach(there is feisty-updates and feisty-security and we have an entire session just about that later this week)18:15
dholbachthe urgency is irrelevant in the ubuntu world18:15
dholbachnext up are all the individual changes that happened in the new revidion18:16
dholbachrevision18:16
dholbachsome people tend to specify changes like this:18:16
dholbach * <file>: <change>18:16
dholbachI like that too18:16
dholbachif you package a new upstream version it might make sense to point out what happened upstream too18:16
dholbachnext up is your name and email address plus a date string18:16
dholbachit'd be terribly irksome to type this all by hand18:16
dholbachwhich is why we use a tool called   dch  (in the devscripts package) to generate most of it for us18:17
dholbach<eddyMul> QUESTION: in debian/changelog, what time should I use for the timestamp? does it matter?18:17
dholbacheddyMul: date -R is used by dch18:17
dholbach<eddyMul> QUESTION: follow up to corevette: is there an emacs mode for it?  :)18:17
dholbacheddyMul: dch will use whatever you specified as EDITOR in your profile18:17
dholbach<danbhfive> QUESTION: why the zero?18:18
dholbachI think I answered that18:18
dholbach<charliecb> QUESTION: Starts the revision-number always with 1 ?(and 0 for debian if the package doesn't exists in debian)18:18
dholbachcharliecb: if you take a debian package and alter it, you mostly just add "ubuntu1", then increment the last number18:18
dholbachof course there are special cases, but we'll not deal with them in this session nos18:18
dholbachnow18:18
dholbachok, everybody happy with debian/changelog?18:19
dholbachok, party on18:19
dholbachnext up is debian/compat which in our case just says "4"18:19
dholbachwe have a set of tools in what we call debhelper suite that help with packaging a lot18:20
dholbachlots of tasks like installation of files, compression of changelog, etc - all the kind of tasks you use in nearly all packages - are simplified in there18:20
dholbachdebian/compat specifies the debhelper compatibility level18:20
dholbachit's not really interesting, but for those of you interested in it, check out   man debhelper  to see what those debhelper compat levels mean18:21
dholbachit's usually not necessary to alter the value18:21
dholbach<mruiz> QUESTION: dholbach, about debian/compat how to decide the version?18:21
=== fd is now known as yafd00-00
dholbachmruiz: if you package a new piece of software and don't depend on any new debhelper features, just stick with 4 or 5 (which is what dh_make will use for you)18:22
dholbach<charliecb> QUESTION: _must_ debian/compat file exists?18:22
dholbachcharliecb: I don't think it needs to exist, but it does for clarity in the majority of packages18:23
dholbach<corevette> QUESTION: how do you use debhelper; tutorial online?18:23
dholbachcorevette: good question18:23
dholbachhttp://wiki.ubuntu.com/PackagingGuide is THE page you want to check out18:23
dholbachit has lots of tutorials, including how to package use debhelper18:24
dholbachok let's move on - debian/control is much more exciting18:24
dholbachthe first thing you'll notice: it's separate in two stanzas18:24
dholbach<eddyMul> QUESTION: is it worth the time and effort to "bump up" a package's debhelper compat? (which probably incurs some changes in packaging code...)18:24
dholbacheddyMul: not really, only if you *REALLY* depend on a new debhelper features18:24
dholbachin all other cases it's just an upload that has no user impact18:25
dholbachcoming back to debian/control18:25
dholbachthe first stanza is about the source18:25
dholbachand all the following ones (in our case it's just one) are about the binary package18:25
dholbachpackages18:25
dholbachthe source needs to be in a section, so that's specified18:25
dholbacha priority is set and a maintainer too18:26
dholbachthe Maintainer field is quite interesting in the case of Ubuntu18:26
dholbachI mentioned before that we maintain packages in teams, but in addition to that our friends at Debian decided that we should change the Maintainer field in cases where we alter packages we inherit from debian18:26
dholbachhttps://wiki.ubuntu.com/DebianMaintainerField describes the whole process, the general idea is: Debian maintainers received emails of Ubuntu users who wanted to reach the "maintainer"18:27
dholbachwhich did not always work out well18:27
dholbachso what we do is, we store the original maintainer, but change the maintainer field to our team mailing lists18:27
dholbachnext up is "Build-Depends"18:28
dholbachand that's one of the most critical values in the whole file18:28
dholbachit lists all the packages that need to be installed in order to build the package in a minimal environment18:28
dholbachif you listened to the PPA session before you might have gathered that the source is built in chroots (minimal environments) where just build-essential (which includes gcc, make, etc) and the Build-Depends are installed18:29
dholbachso there's a distinction between Depends (binary packages) and Build-Depends (source packages)18:29
dholbach<tamrat> QUESTION: where can i find information about building different binary packages from one source package (eg creating shared libraries, -dev and the package from the same source)18:29
dholbachtamrat: that's exactly in debian/control18:29
dholbachI'll just finish up the source stanza in debian/control, then come to the binary packages18:29
dholbach<InsClusoe> QUESTION: Why do you say minimal environment?18:30
dholbachInsClusoe: you upload the source package (.dsc .orig.tar.gz .diff.gz) to the build daemon, which will take it and put it into a minimal environment, just containing a VERY FEW packages18:30
dholbachthen install the Build-Depends18:30
dholbachso you can't expect that libsomething6-dev is installed18:30
dholbachyou need to specify it18:30
dholbach<dargol> QUESTION: how do I guess build depends for a given source?18:31
dholbachdargol: that's an excellent question and what I wanted to show next18:31
dholbachof course you could just try and fail over and over again18:31
dholbachfor that you'd use a pbuilder (http://wiki.ubuntu.com/PbuilderHowto) which generates that chroot for you18:31
dholbachand watch the build fail over and over again until you get the build-depends right :)18:32
dholbachbut it's cleverer to check out a few files like ./configure.ac which specifies upstream build requirements18:32
dholbachin our case the package is written in C++ and uses autotools, so you'll find a configure.ac there18:32
dholbachstuff like:18:33
dholbachGLIB_REQUIRED=2.6.018:33
dholbachGTK_REQUIRED=2.6.318:33
dholbachLIBXML_REQUIRED=2.6.1218:33
dholbachis usually a very good indicator of what you need to build it18:33
dholbachalways make sure you mention the -dev packages in the Build-Depends which contain header files necessary to compile and link the software correctly18:33
dholbachnext up is Standards-Version: 3.7.218:33
dholbachwhich just declares that this source package complies with version 3.7.2 of the debian policy18:34
dholbach<charliecb> QUESTION: this package depends on debhelper. depends *every* package on debhelper?18:34
dholbachcharliecb: no, but the vast majority - there are people who choose not to use debhelper but do a lot of stuff manually18:34
dholbach<eddyMul> QUESTION: how do we decide which ./configure options to --enable and which ones we can do --without?18:34
dholbacheddyMul: that's a maintainer question18:34
dholbacheddyMul: you maintain the package and make it available for millions of users18:35
dholbachit's your (and your team's) call18:35
dholbachso if the frobnicator feature is brand-new and you're about to release an LTS, you probably don't want to --enable-frobnicator18:35
dholbachok, let's move on to binary packages18:36
dholbachbinary packages is the stuff that users like my mom install, they don't care about the source :)18:36
dholbachif you have a HUGE package, you might want to consider splitting it up18:36
dholbachif you run       apt-cache showsrc mono | grep Binary | head -n 1        you will notice that mono makes heavy use of splitting18:37
amachu:)18:37
dholbach<eddyMul> QUESTION: ./configure: is there a document about Debian/Ubuntu's default --prefix, etc18:37
dholbacheddyMul: I need to pass this question on, best to ask in #ubuntu-motu, sorry18:38
dholbachok, in our case we just have one binary package, it's called gnome-web-photo too18:38
dholbachArchitecture: is an interesting field18:38
dholbachin our case it is "any" which means: build this package on any architecture there is18:38
dholbachthis means: we upload the source of gnome-web-photo18:39
dholbachand it will be built on all buildds: i386, amd64, powerpc, hppa, lpia, etc etc18:39
dholbachthis is necessary because we compile code that is architecture dependent18:39
dholbachthat's the case for C, C++ and so on18:39
dholbachif you just upload a package that contains artwork, you don't need to bother, set Architecture: all to indicate: it's the same for all architectures18:40
dholbachthat also includes python and perl scripts, etc18:40
dholbach<eddyMul> QUESTION: just to confirm, any != all ?18:40
dholbacheddyMul: yes18:40
dholbachany = build this for any architecture there is18:41
dholbachall = it's the same for all archs18:41
dholbach<charliecb> QUESTION: for example, package cdbs has architecture is i386. what if i tell that package gnome-web-photo that architecture is any? is this possible?18:41
dholbachcharliecb: I think I need to correct you18:41
dholbachdaniel@lovegood:~$ apt-cache showsrc cdbs | grep Arch18:41
dholbachArchitecture: all18:41
dholbachdaniel@lovegood:~$18:41
charliecbno, its just an example.18:42
dholbachcdbs is written in shell scripts, so there's no need to build it on different architectures18:42
dholbachcharliecb: then please rephrase your question - I might have misunderstood18:42
charliecbgo on. i'll ask later.18:43
dholbachok thanks18:43
dholbachof course you can have a list of archs the package builds on18:43
dholbachso if your package is known to just build on i386 and amd64 (and not on powerpc, etc)18:43
dholbachyou just write       Architecture: amd64 i38618:44
dholbachcoming to the next line: Depends18:44
dholbachthis is really interesting and important to get right18:44
dholbachin our case it first looks a bit weird: Depends: ${shlibs:Depends}, ${misc:Depends}18:44
dholbachit's not something like:18:44
dholbachDepends: libatk1.0-0 (>= 1.13.1), libc6 (>= 2.5-0ubuntu1), libcairo2 (>= 1.3.12), libfontconfig1 (>= 2.4.0), libgcc1 (>= 1:4.1.1-21ubuntu1), libgconf2-4 (>= 2.13.5), libglib2.0-0 (>= 2.12.9), libgnomevfs2-0 (>= 1:2.17.90), libgtk2.0-0 (>= 2.10.3), libjpeg62, liborbit2 (>= 1:2.14.1), libpango1.0-0 (>= 1.15.5), libpng12-0 (>= 1.2.13-4), libstdc++6 (>= 4.1.1-21ubuntu1), libx11-6, libxcursor1 (>> 1.1.2), libxext6, libxfixes3 (>= 1:4.0.1), l18:45
dholbachibxi6, libxinerama1, libxml2 (>= 2.6.27), libxrandr2, libxrender1, gconf2 (>= 2.12.1-4ubuntu1)18:45
dholbachwe might have expected18:45
dholbachthe reason for that is simple18:45
dholbach${shlibs:Depends} is a variable that gets expanded during the build process18:45
dholbachexpanded to all the packages that contain the libraries the binaries in our package are linked to18:45
dholbachso the file  /usr/bin/gnome-web-photo   that is in our package is linked to all the libraries contained in the packages above18:46
dholbach${misc:Depends} gets expanded to miscellaneous tools the package might need18:46
dholbachfor example dh_gconf (in the debhelper) package added gconf2 (>= 2.12.1-4ubuntu1)18:46
dholbach<nijaba QUESTION: so for scipts, we need to be explicit?18:46
dholbach<nijaba> QUESTION: so for scipts, we need to be explicit?18:46
nxvl_workdholbach: i will handle the questions, just ask for next one18:47
dholbachnijaba: yes, if your script calls say "wget" or "firefox" you need to depends on that manually18:47
dholbachthe rest of debian/control is just description18:47
dholbacha short one in the  Description:  line18:48
dholbachand the long one below18:48
dholbach<eddyMul> QUESTION: are ${shlibs:Depends} somehow taking values from Build-Depends?18:48
dholbacheddyMul: library packages ship .shlibs files (which are generated automatically), which are used to determine which library corresponds to which library package with which version18:49
dholbachon friday we'll have a session about library packaging which talk about that in more detail18:49
dholbachok, party on18:49
dholbachdebian/copyright18:49
dholbachis one of the files most easy to get wrong18:49
dholbachdebian/copyright contains information about:18:50
dholbach - who did the packaging18:50
dholbach - who has copyrights18:50
dholbach - who is the author18:50
dholbach - under which license the source is licensed18:50
dholbachit's absolutely important to get that right, else Ubuntu and Canonical get in deep trouble :)18:50
dholbachso if you decide to package something new, you need to make sure you observe all copyrights and check all the source files18:51
dholbachelse the archive admins won't accept your package18:51
nxvl_work<eddyMul> QUESTION: how can I find out what's in ${shlibs:Depends}? is it somehow inferred from Build-Depends? or is `ld*` doing some magic?18:51
dholbacheddyMul: ld* is used, then the *.shlibs files of the used packages are looked at, but that goes too far in this sessioon18:52
dholbachnxvl_work: next18:52
nxvl_work<snhome> QUESTION no author in this one, assumed to be copyright holder?18:52
dholbachsnhome: if you run    ls src/* | xargs head | less         you will see that there are a bunch of copyright notices18:53
dholbachand yes... it is necessary to check all the files beforehand18:53
dholbachit's a tedious job, but just imagine the case where you were wrong and something we were not allowed to redistribute ends up on the CDs :)18:53
dholbachit's easy to remove software out of the archive, try that with 345743456765434567 million CDs that were sent out :)18:54
amachummm18:54
dholbachompaul just pointed out that I should refer to http://wiki.ubuntu.com/PackagingGuide18:54
dholbachit has a long chapter just about copyright stuff18:55
dholbachnxvl_work: next18:55
nxvl_work<snhome> QUESTION you said this file contained who did package, has copyright, author but this one has no author. I did not understand your answer18:55
dholbachsnhome: you are right, I was lazy and the archive admins are stricter nowadays18:55
dholbachCopyright Holder:18:55
dholbach        Christian Persch <chpe@gnome.org>18:55
dholbachis all I wrote18:55
nxvl_workdholbach: you are evil!18:56
nxvl_work:D18:56
dholbachI would have to specify  Upstream Author:  and  Copyright Holder: separately18:56
* dholbach hugs nxvl_work18:56
dholbachand mention the year of the copyright, etc, etc18:56
* nxvl_work hugs dholbach back18:56
dholbachthere are probably better examples18:56
dholbachlet's come to the core part of the package: debian/rules18:56
dholbachin our case it's tiny, because I decided to use CDBS18:56
dholbachCDBS is a set of makefile snippets that internally call all the debhelper tools for us18:57
dholbachCDBS has its downsides: there is a lack of documentation (https://perso.duckcorp.org/duck/cdbs-doc/cdbs-doc.xhtml is good though) and it's not easy to look behind the scenes18:57
dholbachand it's certainly not so great for understanding what happens and how things work18:58
dholbachbut as we're at the end of the session, it fit quite well :)18:58
dholbach<eddyMul> QUESTION: debian/rules: is it worth the time/effort to port stuff to cdbs? (I like cdbs. I hope all packages use it)   :)18:58
dholbacheddyMul: that's a good question18:58
dholbachmy answer is: no18:58
dholbachfirst of all: it's of little use to the user, it doesn't really change much and the effort of "porting" to it can be quite big18:59
dholbachsecond: we always need to merge the diff between ubuntu and debian packages18:59
dholbachif it's a package you're deeply interested and consider maintaining and think that whatever the debian packages uses is too gruesome, you might do it18:59
dholbachbut normally, no :)18:59
dholbachthe session is over - there will be lots of other sessions where you can ask your questions :)19:00
dholbachjust a few links:19:00
dholbachget started: https://wiki.ubuntu.com/MOTU/GettingStarted19:00
=== dojo is now known as zubat
nxvl_workdholbach: thanks for your talk!19:00
* nxvl_work waves on dholbach19:00
dholbachBlog about Ubuntu Developer Week and your MOTU journey: Add your weblog to http://ubuntuweblogs.org by following these instructions: http://ubuntuweblogs.org/submit.html19:00
dholbachthank nxvl_work19:00
charliecbthx19:00
Unksithankies dholbach :)19:00
nxvl_work\o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/19:00
dholbachyou guys ROCK! :)19:01
Kaasethuthanks - got to know new things19:01
shujinThanks19:01
bananaramaxgreat session - thanks a lot19:01
dargoldholbach: thanks a lot!19:01
amachuthank you, dholbach19:01
Jithu2k1:-D19:01
nijabathank dholbach19:01
hollowaythanks dholbach19:01
jsauerthanks dholbach19:01
fredrethank you19:01
Lantashthanks a lot! great session19:01
zubatthanks19:01
dholbachnext up are our Packaging Kings: James Westby & Nicolas Valcárcel19:01
dholbachwho will talk to you about Ubuntu and Debian collaboration19:01
james_w\o/19:01
dholbachthanks a lot everybody19:01
* dholbach hugs james_w and nxvl_work19:01
james_wthanks Daniel.19:01
nxvl_workheh, 10 lines of hugs and love, that's why i love ubuntu19:02
dholbachthe stage is yours :)19:02
james_wFirstly I'd like to apologise to Nicolas, as my oversight meant that he wasn't listed as co-presenter of this talk. Sorry Nicolas.19:02
nxvl_workjames_w: don't worry, i add myself :D now i'm in there19:03
james_wWe are going to talk today a little about collaboration between Debian and Ubuntu, and how you can make the process smoother.19:03
james_wFirstly I want to say a little about what the relationship between Debian and Ubuntu is.19:03
james_wDebian is the base upon which Ubuntu is built.19:04
james_wAlmost all packages in Ubuntu come from Debian, and most are used unchanged.19:04
james_wThis means that Ubuntu owes a lot to Debian and should endeavour to maintain a good relationship with them.19:04
james_wThere are however several differences in the way that Debian and Ubuntu are organised, and in the decisions that they have made on some issues that you need to understand in order to work with them most effectively.19:05
james_wThe biggest difference is that in Debian all packages have a maintainer, which may be a team, who controls the package.19:05
james_w(Please feel free to ask any questions that you have as we go).19:05
james_wThey generally make all the decisions about the package, and are normally the only ones to perform uploads of that package.19:06
snhomehere or in #-chat?19:06
nxvl_worksnhome: -chat19:06
james_wThere are some moves away from this, but it remains the status quo.19:06
james_wThis is different to Ubuntu where in general a package doesn't have a maintainer as such, it is just looked after by all contributors.19:07
james_wThis difference has effects on both Ubuntu and Debian.19:07
james_wFor Ubuntu it means that generally a contributor isn't intimately familiar with a package, and doesn't know the Debian maintainer's opinion on things.19:07
james_wFor Debian maintainers it means that they generally don't know who to contact if they wish to discuss a package in Ubuntu.19:08
james_wThe differences in some policy decisions can also make it difficult for a Ubuntu contributor to know whether what they are doing also applies to Debian as well.19:08
james_wThis can be especially true for bugs, where differing versions of packages, or different dependencies in the chain can hide or expose bugs.19:08
edosarbut how many of debian mainteiners are ubuntu packages ?19:09
nxvl_workedosar: ask you question on #ubuntu-classroom-chat please19:09
=== smarter_ is now known as smarter
james_wedosar: I don't understand your question I'm afraid, if you could re-ask it in #ubuntu-classroom-chat that would be great.19:10
james_wIt can be helpful to not consider Debian as a "whole," but more as a group of people who each work in their own little area.19:11
james_wYou will find that if you contact most of them with a bug report, a patch, or a question they will be very friendly and helpful.19:11
=== RainC1 is now known as RainCT
james_wThere are a few people that this wouldn't really apply to, but they are definitely in the minority.19:11
james_wYou will probably find if you contact those ones in a friendly manner about a specific issue then they will probably still help you, but it can be a scary thing to do.19:12
james_wWhat I am trying to tell you here is not to let the actions of a noisy few spoil your opinions of the whole community.19:12
james_wIn order to understand the best ways to share work between Ubuntu and Debian we need to understand how packages flow between them.19:12
james_wUbuntu takes all source packages from Debian that aren't on a blacklist and automatically "syncs" them in to Ubuntu.19:13
james_wThis means that the source package is taken unmodified and just rebuilt in the latest development version of Ubuntu.19:13
james_wThere are certain things that may be done while building which mean that you may get different binary packages, but they do not alter the functionality, for instance https://wiki.ubuntu.com/DebianMaintainerField.19:13
james_wThis process stops at "DebianImportFreeze".19:13
james_wIn order to sync a packageafter that stage you must file a sync request, following the process at https://wiki.ubuntu.com/SyncRequestProcess.19:14
james_wWhere Ubuntu has to make changes to the package a new upload is done.19:14
james_wThis upload has a version number containing "ubuntu", which ensures that the package won't be synced without manual action, so that the changes are not lost.19:15
james_wWhen this has been done in the past and a new upload is made to Debian, the package will be eligible for "merging".19:15
james_wThis means taking the two versions of the package and reconciling the changes so that you get the new changes from Debian, but also keep the Ubuntu changes. See https://wiki.ubuntu.com/UbuntuDevelopment/Merging for more information.19:15
james_wSometimes when you go to merge a package you will find that the new Debian version includes all the changes that were made in Ubuntu.19:15
james_wIn that case you perform a sync, meaning that again Ubuntu is using Debian's package for that software.19:16
james_wAnd we all cheer, as that is Free Software in action (and we have less work to do).19:16
james_wSo, what are the ways in which we can share work with Debian?19:16
james_wThere are a whole bunch of ways, for instance you can share patches, work together to package new upstream versions, or coordinate transitions or security fixes.19:17
james_wYou can even become maintainer or co-maintainer of a package in Debian so that the package can always be used unmodified in both with less work.19:17
james_wWhen you are about to make some changes in Ubuntu you can look to see whether these apply to Debian as well, and if they do contact the Debian maintainers and propose that you work together on the issue, or just send them the result of your work.19:18
james_wIt's always a good practice to coordinate your changes with the Debian maintainer, so you can check if they differ from her plans, or she is already working on the problem.19:19
james_wWe want to avoid cases where incompatible changes are made in the two distributions, as that creates a massive headache for the future.19:19
james_wNow, we'll show you a couple of places you can use to find information about packages in Debian.19:20
james_wThere are several places from which you can find information about packages in Debian. Knowing where to look to find something out can be quite an art in itself.19:20
james_wLuckily there is one place that tries to gather as much of this information as possible. That place is the Package Tracking System, known as the PTS.19:20
james_wThe PTS lives at http://packages.qa.debian.org/. You can quickly go to the page for a package using http://packages.qa.debian.org/package.19:21
james_wNote that it works using the source package name, but if you enter a binary package name you get a helpful redirect page.19:21
james_wLet's take a look at a typical page: http://packages.qa.debian.org/gnupg.19:21
james_wStarting from the top left you can see information about the source package, such as versions, and the priority.19:21
james_wYou also have links to the components of the source package, so using "dget" you can quickly download the current Debian source package.19:21
james_wIn the right hand pane, you have some links to bug reports for the source package.19:22
james_wThese include the bug reports on all of the binary packages, but can also reports on the source package itself, so I usually use these so that I don't miss them (though they are rare).19:22
james_wBelow that you can subscribe to the PTS. This means that if you are really interested in a package you can get emails when things happen with the package.19:22
james_wIf you select advanced mode from the drop down menu you can select what sort of information you would like to receive.19:23
james_wThere are loads more links on these pages, I would encourage you to spend some time clicking around in the PTS later, and just see where you end up.19:23
james_wIt can be hard to remember where to find a bit of information, but most is available somewhere in one of these links.19:24
james_wThe other important source of information is the Bug Tracking System, known as the BTS.19:24
nxvl_work<Kaasethu> QUESTION: //You can quickly go to the page for a package using http://packages.qa.debian.org/package.// -->goes to 404 error19:24
james_wIf you go to http://bugs.debian.org/src:gnupg you can see the page for the gnupg source package.19:24
james_wKaasethu: that link does as there is no package called "package", try http://packages.qa.debian.org/gnupg instead.19:26
james_wBack to the BTS: on the above page you can see an overview of the bugs, with them divided in to sections. You can click on a bug report to get more information.19:26
james_wEmail is used to communicate with and control the BTS.19:27
james_wYou can find information on doing this at http://www.debian.org/Bugs/.19:27
james_wYou can also use "reportbug -B Debian" and the "bts" tool to generate the emails.19:27
james_wSome tasks can be a little confusing. If you get stuck try asking in #ubuntu-motu, someone will probably be able to help.19:28
james_wSo, as eddyMul wanted, we'll now talk about sending patches to Debian.19:28
james_wI chose this topic for several reasons.19:28
james_wFirstly, it is often requested that Ubuntu forwards more of its patches to Debian.19:28
james_wSecondly, it is quite an easy thing to do.19:28
james_wThirdly, if Ubuntu pushes all its patches for a package back to Debian then the package can just be synced in future, reducing the amount of work it takes to maintain them.19:29
james_wso, everybody wins.19:29
james_wIn order to submit a patch to Debian you should first create a standalone patch that fixes a specific issue.19:29
james_wYou should then check the BTS to see if a bug has been filed about the issue.19:29
james_wIf it has then you can email the bug report and attach the patch, sending a control command to tag the bug "patch" ("bts tag #12345 patch").19:29
james_wThe patch can either be a simple patch that they can apply to the unpacked source package.19:30
james_wOr, you can create a second source package and use "debdiff" to get the changes, and then filter out anything you don't want to send (perhaps with filterdiff).19:30
james_w(debdiff uses interdiff internally, so you can also use that tool directly).19:31
james_wIn ubuntu-dev-tools there is a command to do exactly that: submittodebian.19:31
james_wIf you run that then it will generate the debdiff, allow you to edit out parts that you don't want, and then file it as a bug in the BTS.19:32
james_wIt uses reportbug for the last part, so you can attach the patch to an existing bug as well.19:32
james_weddyMul> QUESTION: " you can email the bug report and attach the patch": how do I email the bug report? do I email the maintainer? (I thought I should be commenting on a bugzilla entry, or something like that....)19:34
nxvl_workjames_w: would you answer this one?19:34
james_wyou email the bug itself. You can either compose a mail to 12345@bugs.debian.org to send a message to bug #12345, or you can use "reportbug -B Debian"19:35
nxvl_workBTS it's not like LP19:35
nxvl_workon LP we just add a comment and attach our patches in there19:35
nxvl_workon BTS all the changes are handled by mail19:35
nxvl_workyou report bugs by mail, change the status by mail, add comments by mail19:36
nxvl_workthe only way to interact with BTS is by mails19:36
james_wI tend to do these steps by hand as I am familiar with the BTS, but if you are not reportbug should be very useful.19:36
james_wYou can see one of the mails that I sent at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=451683.19:36
james_wOne thing that we would like you to do when filing bugs in Debian, with or without a patch, is to set a "usertag" on them.19:36
nxvl_workyou can find more information about this on http://www.debian.org/Bugs/19:36
james_wThis allows the bugs to be tracked as one, so that it can be seen where Ubuntu is contributing back.19:37
james_wYou can find out how to do this at https://wiki.ubuntu.com/Bugs/Debian/Usertagging.19:37
james_wI would like to point you to one last thing that will make all of this easier in an environment where we have multiple people working the packages.19:37
james_wThat is the proposal described at https://lists.ubuntu.com/archives/ubuntu-devel/2007-November/024743.html.19:38
james_wIf you could all start using this technique when creating patches it will make it easier to understand what patches are meant for upstream.19:38
james_wMy closing comment would be that there are many people involved in Ubuntu development that are knowledgeable about Debian, so if you need to know where to find something, or would like advice about whether a change is applicable to Debian then you should just ask.19:38
james_wNow, nxvl_work is going to take over for the rest of the session.19:39
nxvl_workjames_w: thanks19:39
nxvl_workOk19:39
nxvl_workI will talk a little about the best practices on Debian sharing19:39
nxvl_workSometime we want to help, but we do to exact oposite19:40
nxvl_workso, please keep in mind some of the things i'm going to tell you19:40
nxvl_workThere are many ways that you can work together with Debian.19:40
nxvl_workFor instance you can share patches, work together to package new upstream versions,19:41
nxvl_workcoordinate transitions, security fixes. You can even become maintainer19:41
nxvl_workor co-maintainer of a package in Debian so that the package can always19:41
nxvl_workbe used unmodified in both with less work.19:41
nxvl_workok, that part is not as simple as it look you need to be careful on what you are doing19:42
nxvl_workMany of the bugs on ubuntu are present on debian19:42
nxvl_workbut it's important to keep in mind and be VERY careful is that no every bug on ubuntu19:43
nxvl_workapplies to debian, there are software error which are not reproducible on debian19:43
nxvl_workso if you will ping the maintainer or report back to debian19:43
nxvl_workyou must be sure it applies, so you don't make the Debian maintainer work and test looking for a bug that doesn't exist.19:43
nxvl_workAlso if you are going to send your work to them you must keep in mind that he is also a volunteer as you are19:44
nxvl_workthey can add your changes if they think it will help them19:44
nxvl_workbut maybe they don't want to apply them19:45
nxvl_workalso they don't want to read long diff files with lots of changes19:45
nxvl_workit's better to send them small and separate patches with your19:45
nxvl_workchanges so they can use the ones they find usefull and discards the ones19:45
nxvl_workwho doesn't19:45
nxvl_workOk, but, what if i'm a triager?19:45
nxvl_workYou can test if the bugs are also present on debian and report them back using BTS, being carefaul on the points talked earlier19:46
nxvl_workalso, LP and bts have a "link" option so you can have on the Bug report at LP the link to the debian bug report19:46
james_w<tacone> QUESTION: how are we going to know that a bug exists or not in Debian ?19:46
nxvl_workso it's easier to keep track of what's going on with the debian bug19:46
nxvl_worktacone: easy, try to reproduce it on Debian :D19:47
nxvl_worktacone: i have always a Virtual machine running debian for test purposes19:47
nxvl_workalso you can have a chroot environment19:47
nxvl_workok, back to the LP and BTS syncroniztion19:48
james_wthere are some packaging bugs that can be checked just by doing things like looking at the dependencies in Debian, but most do need an environment to test.19:48
james_wAlso, you could ask someone with a Debian system to test.19:48
nxvl_workthis way it's easier to keep track of what's going on with the debian bug19:48
nxvl_workalso bts has an option like this that you can use with the command (mail command) 'forwarded $bug $upstream_url'19:49
nxvl_workso you can have it backwards, so please use the tools to have a better comunication and avoid the packagers to duplicate efforts on patching.19:49
nxvl_workAnd always keep it mind that Debian makes things LOTS easier to us19:49
nxvl_workso we need to try to do our best to make things LOTS of easier for them also19:50
nxvl_work:D19:50
james_w<eddyMul> QUESTION: does ubuntu track debian unstable? testing?19:50
nxvl_workok, now with the questions19:50
nxvl_workeddyMul: track as in syncs from?19:50
eddyMuleddyMul: yes19:50
nxvl_workunstable19:50
nxvl_workalways unstable19:51
nxvl_work<snhome> QUESTION What am I missing in explanation? If Ubuntu and Debian are so similar why have Ubuntu?19:51
james_wthough it is possible to sync from elsewhere, e.g. experimental19:51
nxvl_worksnhome: that's a common but hard question19:51
nxvl_workeddyMul: oh yes i forgot, somethimes we sync directly from upstream19:51
nxvl_workeddyMul: but commonly from sid (unstable)19:51
nxvl_worksnhome: ok, on your question19:51
nxvl_worksnhome: there are some differences between Ubuntu and Debian, and they go on their policies19:52
nxvl_workfor example, ubuntu install some restricted driver out of the box, debian would NEVER do it19:53
james_wUbuntu changed some things that would have been very difficult or impossible to do in Debian.19:54
james_wAlso, Ubuntu has a smaller focus in terms of things like supported architectures, meaning it can focus more energy in to the areas it does concentrate on.19:54
nxvl_workso Ubuntu and Debian are similar in some ways, but VERY different on others19:55
james_wany last questions, we have a couple of minutes left.19:55
nxvl_workmathiaz: around?19:56
seajazzthanx19:56
snhomethanks19:56
james_wthanks all.19:56
james_wand thanks nxvl.19:57
shujinthanks guys!19:57
james_wRave safe kids.19:57
arturodrthanks19:57
* nxvl_work HUGS james_w19:57
nxvl_workoh yes19:57
Unksithank you :)19:58
nxvl_workanother difference is that on Ubuntu we like to HUG each other a LOT!19:58
nxvl_work:D19:58
nxvl_workso, i think mathiaz is not here yet19:58
nxvl_workbut the next talk would be on Server Team19:58
* mathiaz looks around19:58
InsClusoeThanks..19:58
snhomenxvl: consider yourself hugged :)19:58
nxvl_workmathiaz will explain you what is the work we are doing on the Server side of Ubuntu, what are our goals, an how to start working with us19:59
nxvl_workit will be a really nice talk19:59
mathiaznxvl_work: great introduction ! Thanks.19:59
nxvl_workhere he is!19:59
mathiazso how is still around ?19:59
nxvl_worklets wave on mathiaz19:59
* shujin waves20:00
* nijaba waves at mathiaz20:00
* jetsaredim waves20:00
* sommer wavings20:00
* cap10morgan waves too20:00
nxvl_work\o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/ \o\ /o/20:00
* Unksi waves20:00
* Koon waves too20:00
* Gnine waves from ubucopter20:00
holloway\m/20:00
=== InsClusoe is now known as waves
mathiazafter a couple of rather technical session about development, I'd like to take some time to present the Ubuntu Server Team.20:00
=== waves is now known as InsClusoe
* eddyMul waves20:00
mathiazwho we are, what we're doing, and how you can get involved with the Server Team.20:01
nxvl_workmathiaz: did you want me to handle the cuestions?20:01
nxvl_workquestions*20:01
mathiaznxvl_work: if you could relay the questions from u-c-c it would be appreciated20:01
nxvl_workok20:01
nxvl_workjust ask if you want one20:01
mathiaznxvl_work: thanks. :)20:01
mathiazSo who is the server team ?20:02
mathiazyou can find most of the information on our wiki pages : https://wiki.ubuntu.com/ServerTeam20:02
nxvl_workif i apear to be dead im on bathroom, just be patient20:02
mathiazI've been part of the server team for almost a year now20:03
mathiazand most of the people I've seen getting onboard share a common interest in server related software.20:03
mathiazAs a consequences we also tend to be interested in setups and configuration found in corporate enviornments, such as directory services (ldap and AD domain), web services or network authentication.20:04
mathiazLet me introduce some key people to the server Team (by alphabetical order):20:05
mathiazAdam Sommer, aka sommer20:05
mathiazHe is our documentation guru.20:05
mathiaz He's taken the task to review20:05
mathiazand update the Server Guide for Hardy.20:05
mathiazThus he is also involved with the Documentation team.20:06
mathiazAnte Karamatić - another long time contributor to the server team, ivoks.20:06
mathiazMember of the MOTU team, he did some work on the apache package and the bacula package.20:07
mathiazChuck Short - zul - he maintains xen.20:07
mathiazKees Cook and Jamie Strandbodge are our security gurus.20:08
mathiazThey are the ones that keep your system safe at night ;)20:08
mathiazThey've started the Security Team recently: https://wiki.ubuntu.com/SecurityTeam20:08
mathiazMichael Behrens - faulkes-20:08
mathiazA recent contributor coming from the forums.20:09
mathiazHe's taken the role of the Forum Ambassador.20:09
mathiazHe's been lurking in the forums for quite some time and works on providing feedback from the Server forum.20:09
mathiazMathias Gug - mathiaz. Well that's me.20:10
mathiazI've been doing some work on AppArmor and trying to get the Ubuntu Server Team up and running.20:10
mathiaz Neal McBurnett - long time contributor and interested in documentation and virtualization (such as Ubuntu JeOS).20:11
mathiazRick Clark - dendrobates. He is the techinical manager of the Server Team at Canonical.20:11
mathiazScott Kitterman - mainly interested by mail services.20:12
mathiazif you're interested in20:12
mathiazpostfix or clamav he is the man to talk to20:12
mathiazHe is also an active member of the MOTU team and became a core-dev recently.20:12
mathiazSoren Hansen - soren - our virtualization specialist.20:12
mathiazHe brought cool virtualization technology in Ubuntu for Hardy.20:13
mathiazHe is gonna run a session on this topic tomorrow IIRC.20:13
mathiazSo - these are some key people from the team and I've forgotten many others.20:14
nxvl_workmathiaz: tomorrow at 17 UTC20:14
mathiazAs you can see the group has a broad range of interests.20:14
mathiazAnd most of use are actively involved in other teams of the Ubuntu project.20:15
mathiazThis is one of the caracteristic of the Server Team: we all share a common interest in server technologies, but have differents skills.20:15
mathiazBeing part of the team often means representing the Server Team in other areas of the Ubuntu project.20:16
mathiazBeing a contributor to the server team can be taken under different roles:20:16
mathiazThe helper answers questions on the ubuntu-server mailing list and the #ubuntu-server irc channel.20:16
mathiazThis is usually the first step and easiest one to take to start contributing to the server team.20:17
mathiazTriagers digg into bugs the ubuntu-server LP team is subscribed to.20:17
mathiazOut LP team is a bug contact for a list packages, such as samba, openldap, mysql or apache2.20:18
mathiazThe current list of packages can be found here: https://bugs.launchpad.net/~ubuntu-server/+packagebugs20:18
mathiazThe list will be expanded soon as soon as we've setup a dedicated mailing list for ubuntu-server bugs.20:19
mathiazUsually we decide to target our efforts for bug triagging to one or two package for a week and discuss the outcome of our triagging effort during our weekly meeting.20:19
mathiaz The focus for this week is openldap.20:19
mathiaz Version 2.4 has been uploaded a couple of weeks ago and bugs have been filled as people start testing this new major version of openldap.20:20
mathiaz So if you have some experience in directory services, you can help us right now.20:20
mathiazThis is a great way to start with the LP bug tracker and doesn't require any knowledge of programming languages.20:20
mathiazWe're working closely with the BugSquad team - triaggers participate on the bugsquad mailint lists.20:21
mathiazAnd once in a while with have the honor of having our own HugDay where the whole bug triagger community helps us.  https://wiki.ubuntu.com/BugSquad/20:21
mathiazOnce bugs have been triagged, it's time to fix them.20:22
mathiazThis is when the packagers20:22
mathiazcome into the game.20:22
mathiaz This role requires an interest in packaging.20:22
mathiazWe maintain a list of bugs that are easy too fix: https://bugs.launchpad.net/~ubuntu-server/+mentoring20:22
mathiazThese fixes can make their way easily into the ubuntu repositories via the sponsorship process20:23
mathiazhttps://wiki.ubuntu.com/SponsorshipProcess20:23
mathiazDoing work on the packaging front leads to a close a collaboration with the MOTU team and is a great way to gain experience to become a MOTU.20:24
mathiazhttps://wiki.ubuntu.com/MOTU20:24
mathiazAnother role that kicks in on a regular schedule are the testers.20:24
mathiazNew features and new packages needs to be tested before released for wide spread consumption.20:25
mathiazThus we organize test plans.20:25
mathiazFor example, likewise-open has been uploaded to universe.20:26
mathiazIt provides AD directory integration. However there are lot's of different AD setups.20:26
mathiazSo we'll setup a test plan to keep track of the results.20:26
mathiazIf you have access to an AD domain, installing ubuntu and testing you can join the domain with likewise-open is an easy way to contribute to the Server Team right now.20:27
mathiazTesting plans are coordinated with the Ubuntu QA Team - https://wiki.ubuntu.com/QATeam20:27
mathiazTesters are taking an important role when we're about to ship a new milestone or release.20:27
mathiazWe're responsible for ensuring that the ubuntu-server isos are working correctly, which involves performing a dozen of tests for three isos.20:28
mathiazWe use the isotesting tracker from the QA team to track the results. The more testers we have, the less tests each of us has to do and results are posted faster.20:29
mathiazServer hardware support is another area where testing is important.20:29
mathiazWe're trying to make sure that ubuntu can used on the main server hardware, so if you have access to such hardware, popping a cd into the machine, installing a standard ubuntu server and reporting that whether it has sucessfully installed or failed is an easy way to contribute to the server team.20:29
mathiazAn additional process to the testing of a feature is documenting it.20:31
mathiazThat's the role of the Documentors.20:31
mathiazBrowsing the ubuntu-server mailing list archive, lurking in the #ubuntu-server irc channel or going through the forum posts shows patterns in user's questions.20:31
mathiazRecurring themes are identified and turned into documentation.20:32
mathiaz A wiki page in the community section of help.ubuntu.com is first created.20:32
mathiaz Once the quality has improved, a new section is added to the server guide.20:32
mathiaz All this work is undertaken by the Documentors of the Server Team.20:32
mathiazCollaboration with the Documentation team is done on a daily basis to achieve consistency with other help ressources.20:32
mathiazAdam Sommer started to update and review the Server guide for Hardy.20:33
mathiazThe document is maintained in a bzr tree - helping adam will introduce you to  docbook and distributed version control with bazaar.20:33
mathiazThere is also the option to go over server related wiki pages on the community help pages.20:33
mathiaz A good starting point is the Server page that has pointer to lots of howtos.20:34
mathiazhttps://help.ubuntu.com/community/Servers20:34
mathiazAnd the last role in the Server Team are the Developers.20:35
mathiaz they develop new features, usually specified during the Ubuntu Developer Summit that takes place at the begining of each release cycle.20:35
mathiazTracked by a blueprint we have around 3 months to get a new feature into ubuntu.20:35
mathiazFor hardy, virtualization, iscsi and windows integration have been some of the features integrated.20:36
mathiaz Now that Feature Freeze is in place, we've moved our focus to testing and bug fixing.20:36
mathiazThus the developers won't be very active until we release hardy at the end of april.20:36
mathiazAs you can see, contributing to the Server Team can be undertaken in more than one way.20:36
mathiaz It usually involves a lot of interaction with other teams from the Ubuntu project.20:37
mathiazIt's also a good way to show your contribution to Ubuntu and thus helps getting Ubuntu membership.20:37
mathiazThe GettingInvolved page gives an overview of the roles I've talked about above.20:37
mathiazhttps://wiki.ubuntu.com/ServerTeam/GettingInvolved20:37
mathiazSo - how do we work ?20:38
mathiazWe track our progress on the Roadmap and meet once a week to discuss outstanding issues.20:38
mathiazhttps://wiki.ubuntu.com/ServerTeam/Roadmap20:38
mathiazWe use the ubuntu-server mailing and #ubuntu-server to coordinate our activities, discuss policy change in the team.20:39
mathiazJoining the ubuntu-server team on LP is simple as subscribing to the ubuntu-server mailing list and applying for membership on LP.20:39
mathiazThe ubuntu-server team is one of the easiest way to start getting involved in Ubuntu development.20:40
mathiazSo If you already know which role you'd like to contribute as, you can find a list of tasks in the Roadmap.20:41
mathiazDon't hesitate to ask one of the team members involved in your area of interest.20:41
mathiazRefer to the key people I've listed above.20:42
mathiazMost of the information related to the ServerTeam can be found in the ServerTeam wiki pages: https://wiki.ubuntu.com/ServerTeam20:42
mathiazIf you're overwhelmed by all the available information and you're lost, come talk to me - mathiaz on irc or mathiaz@ubuntu.com.20:43
mathiazI'll help getting started.20:43
nxvl_workmathiaz: ready for questions?20:43
mathiazWell - that's all that I wanted to say about the server team.20:44
mathiaznxvl_work: yes - please go ahead.20:44
nxvl_work<eddyMul> QUESTION: can you talk a bit about canonical "Landscape"?20:44
mathiazeddyMul: This is a product in beta mode developed by a team within canonical.20:44
mathiazeddyMul: I'm not actively involved in the project so I don't really know much about it.20:45
mathiazeddyMul: you can contact nijaba - he should be able to give more information.20:45
mathiaznxvl_work: next20:46
nxvl_work<Unksi> QUESTION: Any estimates how many servers run Ubuntu, as Ubuntu is quite new player in the server market (Compared to Debian, Red Hat and other big distros on the server field)20:46
nxvl_work<Unksi> QUESTION: What are the main differences with Ubuntu Server edition and Debian? What makes it worth to run Ubuntu instead Debian, except the "Ubuntu Spirit"?20:46
nxvl_workthis 2 ones are basically related20:47
mathiazUnksi: I don't have an estimate. We've seen a rising number of ubuntu server adoption.20:47
Unksiok20:47
mathiazUnksi: we're based on Debian, which is a very strong technical platform.20:48
mathiazUnksi: within the server team, we're working well with Debian and most of our changes are merged by in Debian.20:49
mathiazUnksi: Ubuntu provides guaranted security updates, even thought Debian is doing an excellent work on this front.20:50
mathiazUnksi: Ubuntu, via Canonical, is also more easily approachable by companies.20:50
mathiazUnksi: there is a partner's program available and propritary software can be integrated in Ubuntu via this channel.20:51
mathiazUnksi: as for rates of adoption, there is the Alfresco borometer that gives some numbers about the adoption of ubuntu in that community.20:53
mathiazUnksi: http://www.alfresco.com/community/barometer/20:53
mathiaznxvl_work: next.20:53
Unksiok, thank you20:53
nxvl_work<pwnguin> QUESTION: Is server edition appropriate for beowulf clusters?20:53
mathiazpwnguin: certainly. One great asset of ubuntu server is that the basic install is small.20:54
mathiazpwnguin: so customizing it for your specific cluster needs is easier.20:55
mathiazpwnguin: there is also the preseeding mechanism available for mass intallation.20:55
mathiaznxvl_work: next20:56
nxvl_work<shujin> QUESTION: Is there anyone looking into the Ubuntu Home Server idea?20:56
mathiazshujin: it depends what you mean by Ubuntu Home Server. I assume you refer to using a web interface to manage your box.20:57
mathiazshujin: there is work done to integrate ebox.20:57
mathiaznxvl_work: next.20:57
nxvl_work<eddyMul> QUESTION: can you talk more about isotesting tracker?20:57
mathiazeddyMul: the isotesting tracker is a website used by the QA team and the release when we're about to publish a new iso.20:58
mathiazeddyMul: http://iso.qa.ubuntu.com/20:59
mathiazeddyMul: it's also used by other teams such as the mozilla team to keep track of testing for new builds.20:59
mathiazeddyMul: basically, it's a list of tests and sucess/failure results.20:59
mathiaznxvl_work: next.21:00
eddyMulmathiaz: interesting. will dig into this a bit more....21:00
nxvl_work<cap10morgan> QUESTION: Are there plans to do other works-out-of-the-box style setups w/ the server installer like the LAMP installation option? (I'm thinking things like NT domain / AD controller, assuming Samba et. al. are up to the task)21:00
mathiazcap10morgan: this a work in progress.21:00
mathiazcap10morgan: we've already added 5-6 tasks during gutsy: samba server, postgresql server, mail server to name a few.21:01
mathiazcap10morgan: hopefully we'll be able to join a domain soon at install time.21:01
mathiazcap10morgan: now that likewise-open has been published in universe, it needs more testing.21:02
cap10morgansoon as in hardy or hardy+1?21:02
mathiazcap10morgan: and once it's move to main, we can integrate into the installer.21:02
mathiazcap10morgan: it depends how well the testing goes.21:02
cap10morganok21:02
mathiazcap10morgan: if we have a lot of tests and we're confident that likewise-open is stable, then we can try to move it to main for hardy and get it into the installer.21:03
mathiazcap10morgan: however we're already past FeatureFreeze - so things are more complicated.21:03
cap10morganso what you're saying is, i should help test likewise-open :)21:03
mathiazcap10morgan: yes.21:03
mathiazand other too :)21:03
mathiaznxvl_work: next21:04
nxvl_work<crevette> QUESTION: Don't you feel this is an hard task, to have only 6 months cycle to provide a server distribution; aimed on reliability; when others (debian, RH) take several years without releasing a version21:04
mathiazcrevette: that's why we've introduced the concept of LTS releases.21:04
mathiazcrevette: companies are looking for a fixed schedule so that they can plan their upgrade.21:05
mathiazcrevette: in the case of debian, it's hard to know when the actual release will be done.21:05
mathiazcrevette: in the case of RH, they've introduced new features in their service packs (or whatever it's called)21:06
mathiazcrevette: As we're preparing for an LTS release, we've also been more conservative in the changes we've implemented for this release.21:07
mathiaznxvl_work: next.21:07
nxvl_work<mzungu> QUESTION: Will hardy be a direct upgrade for a server currently running dapper, or does it have to go through edgy->feisty->gutsy?21:07
mathiazmzungu: dapper->hardy will be supported21:08
mathiaznxvl_work: next21:08
nxvl_work<eddyMul> QUESTION: how different is Ubuntu JeOS default install from Ubuntu Server Edition's default install?21:08
mathiazeddyMul: the main difference is in the kernel flavour installed.21:08
mathiazeddyMul: JeOS installs a the -virtual flavour, which is a kernel that hasn't all the drivers available.21:09
eddyMulis JeOS optimized for Xen? KVM?21:09
mathiazeddyMul: the installed system is also smaller - only the -base seed is installed IIRC21:09
mathiazeddyMul: Not that I remember of.21:10
mathiazeddyMul: I think it has the open-vm-tools available.21:10
sergevnmathiaz: So JeOS is meant for inside an virtual machine, not as host OS?21:10
mathiazsergevn: yes - JeOS is tuned to run a guest.21:10
mathiazsergevn: hardy server will have great support for virtualization as a host.21:11
eddyMulthanx, mathiaz & sergevn21:11
mathiaznxvl_work: next ?21:11
nxvl_work<leonel> QUESTION: Can it be added a LAPD ( Linux Apache PostgreSQL Django )  to tasksel like theres a LAMP ?21:11
nxvl_workone more left and we are done21:11
mathiazleonel: I'm not sure it's such a common scenario. We don't want to have a list of hundreds of profile available during installation.21:12
mathiaznxvl_work: next21:13
nxvl_work<shujin> QUESTION: This may be off topic, but any reason eBox was chosen over Webmin?21:13
nxvl_worklas one!21:13
nxvl_worklast*21:13
mathiaz!webmin | shujin21:13
ubotushujin: webmin is no longer supported in Debian and Ubuntu. It is not compatible with the way that Ubuntu packages handle configuration files, and is likely to cause unexpected issues with your system. See !ebox instead.21:13
eddyMulmathiaz, ubotu: nice!   :)21:14
nxvl_workthats why i love ubotu21:14
shujinouch, I have a 15 servers running webmin21:14
mathiazWell - I think that's all for today.21:14
shujinthanks mathiaz!21:14
mathiazThanks for attending this session about ubuntu server team21:14
eddyMulthanx, mathiaz21:15
Unksimathiaz: thank you :)21:15
mathiazit's also the last session of the first day of the Ubuntu Developer week.21:15
eddyMuland nxvl_work, too21:15
* nxvl_work waves21:15
mathiazThere is more to come during the whole week.21:15
nxvl_workand dances \o> <o> \o/ <o/ \o>21:16
mzunguthanks mathiaz21:16
sergevnmathiaz: Where can I find more info about the Ubuntu Week?21:16
hollowaymathiaz, thank you for the view about your team :)21:16
arturodrthanks21:16
mathiazsoren will talk about virtualization tomorrow and dholbach about MOTU.21:16
mathiazMore information: https://wiki.ubuntu.com/UbuntuDeveloperWeek21:16
mathiazsergevn: ^^21:16
InsClusoeThanks to all of you Ubuntu folks...21:17
mathiazThanks all - and I hope to see you soon onboard the Ubuntu Development team ! :)21:17
InsClusoeIt has been an evening well-spent.21:17
nxvl_workbtw21:18
nxvl_workjoin the 5-A-Day cause21:18
sergevnInsClusoe: Indeed, didnt knew about this untill I got the invite trough #ubuntu-server ^^21:18
nxvl_workhttp://nvalcarcel.aureal.com.pe/?p=17121:18
InsClusoeSergevn: Don't worry... The first two sessions are repeated on Friday as well. So you haven't missed a lot.21:19
hollowayand also there are the logs :)21:19
soneilhow are these weeks usually announced?  I caught it by chance on the planet this morning, else I'd have no idea21:20
InsClusoesoneil: This is the first such week, I believe.21:20
soneilah, ok.   just wondering if there's a list I should have been paying more attention to21:21
InsClusoenxvl_work: I am willing to join 5-A-Day.21:21
nxvl_workInsClusoe: is not hard, just take a look and triage them21:21
InsClusoeHmm... I will try from this week with an initial target of 5-A-Week.21:23
InsClusoesoneil: I saw it first on Ubuntuforums' Packaging and Compiling Programs message board first.21:23
nxvl_workInsClusoe: triage is just ask for help, reproduce bugs and confirm them21:24
nxvl_workInsClusoe: so you can start with that, just takes 5 minutes each bug21:24
InsClusoenxvl_work: ok.. I can definitely do that everyday then. Guess I can take help on #ubuntu-devel or #ubuntu-motu whenever needed.21:25
InsClusoeSee you all tomorrow. Have a nice day/evening/night wherever you are.21:28
nxvl_workInsClusoe: yep, just ask on #ubuntu-bugs or #ubuntu-motu21:29
hollowaycya InsClusoe :)21:29
Xk2cbye21:37
sergevnTomorrows session(s) are also in #ubuntu-classroom?21:58
lamalexaren't there sessions today?21:58
mathiazsergevn: yes - they're also here.21:59
mathiazlamalex: today's session have already finished.21:59
mathiazlamalex: https://wiki.ubuntu.com/UbuntuDeveloperWeek21:59
mathiazlamalex: ^^ has the schedule21:59
lamalexhm I thought I saw packaging was at 170022:00
mathiazlamalex: 1700 UTC22:01
lamalex:P I just did my math wrong22:01
lamalexbummer, I can't make any of these22:02
sergevnare there also logs available for these sessions?22:04
antcarsasure, https://wiki.ubuntu.com/MeetingLogs/devweek0802/PPAs122:05
sergevnantcarsa: thx :)22:07
rzrhi22:20
=== catsk1n is now known as jimqode

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!