Dev Week -- Getting Started with Ubuntu Development -- dholbach -- Mon, Feb 28th, 2011
1 [16:00] <dholbach> HELLO MY FRIENDS!!! 2 [16:00] <c2tarun> hello dholbach 3 [16:00] <AbhijiT> hi 4 [16:00] <MTecknology> howdy 5 [16:00] <dholbach> It's Ubuntu Developer Week and it's starting RIGHT NOW! 6 [16:00] <saket> hi 7 [16:00] <awsominator> Start 8 [16:01] <techbreak> dholbach, :) start 9 [16:01] <acarpine> hello! 10 [16:01] <dholbach> ok, so first things first 11 [16:01] <monish001> hello! 12 [16:01] <dholbach> can all kinds of chat and questions please please please (with sugar on top) go to #ubuntu-classroom-chat please? 13 [16:01] <dholbach> if you haven't joined that channel yet, can you please do that now? 14 [16:01] <mkumar> hello ! 15 [16:02] <dholbach> to review the schedule and get more information about the sessions, check out https://wiki.ubuntu.com/UbuntuDeveloperWeek 16 [16:02] <dholbach> that's the only page you need to bookmark for now :) 17 [16:03] <dholbach> excellent, let's get started 18 [16:03] <dholbach> if you have any kinds of questions, please ask in #ubuntu-classroom-chat 19 === hakimsheriff_ is now known as hakimsheriff 20 [16:03] <dholbach> and please make sure you prefix it with QUESTION: 21 [16:03] <dholbach> ie: "QUESTION: What is your dog's name?" 22 [16:03] <dholbach> etc 23 [16:03] <dholbach> it makes it easier to figure out what exactly the question is :) 24 [16:04] <dholbach> first of all I'd like to thank all speakers - we have a pretty divserse schedule and it's going to be an awesome week 25 [16:04] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/02/28/%23ubuntu-classroom.html following the conclusion of the session. 26 [16:04] <dholbach> my name is Daniel Holbach, I live in Berlin and have been part of the Ubuntu Community for ~6 years 27 [16:04] <dholbach> my primary interest is and always was the developer community 28 [16:05] <dholbach> so it's my honour today to talk about "getting started with Ubuntu Development" and you'll be stuck with me for the next 2 hours :) 29 [16:05] <dholbach> in the first hour I'd like to give you a very broad overview of Ubuntu development, Ubuntu's infrastructure, give you an idea of our processes, how we interact with other projects, etc. 30 [16:06] <dholbach> I won't answer all the questions you have, but I hope I can give you an idea how all the bits and pieces fit together 31 [16:06] <dholbach> in the second hour I'll help you get your development environment set up 32 [16:06] <dholbach> so for the rest of the week you should be all set up and ready to go 33 [16:06] <dholbach> do we have any first questions already? 34 [16:06] <dholbach> (if not, I'd say we get cracking now :-D) 35 [16:07] <dholbach> <20QAAV4RZ> QUESTION: I'm a total newbie with lernid - do I need to hear something or is all done via chats? 36 [16:07] <dholbach> 20QAAV4RZ, yes, it will be done all via chat - some of the sessions will be more tutorial style, so you might have to do a few things in the terminal 37 [16:08] <dholbach> ok, let's get cracking :) 38 [16:08] <dholbach> as you all know Ubuntu is made of thousands of packages 39 [16:08] <dholbach> libraries, tools, apps, games, etc 40 [16:08] <dholbach> they're written in many different languages, and they're all available as source packages 41 [16:09] <dholbach> a source package typically consists of the actual source code and some meta-data 42 [16:09] <dholbach> every single change that gets made (be it just a small fix or a new version, etc.) requires an upload to the build machines (part of Launchpad), where the source package gets transformed into binary packages (.deb packages) 43 === 20QAAV4RZ is now known as hugohirsch 44 [16:10] <dholbach> <susenj> QUESTION: i am using pidgin..not lernid..is it okay?? 45 [16:10] <dholbach> susenj, yes, totally 46 [16:10] <dholbach> <gartral> QUESTION: will multiple shells be covered? 47 [16:10] <dholbach> gartral, it shouldn't really matter which shell you're using 48 [16:10] <mauriciocinelli> how to see video? 49 [16:11] <dholbach> ok, once the .deb files (binary packages) are available, they are pushed to various mirrors 50 [16:11] <dholbach> and they're also used to build CDs of all kinds of Ubuntu flavours (Ubuntu server, Kubuntu, Ubuntu Desktop, etc.) 51 [16:12] <dholbach> so no matter if you use Kubuntu or Ubuntu or Xubuntu or anything else... all the changes are uploaded to the same build machines and are part of the same archive 52 [16:12] <dholbach> <Kroosec> QUESTION: Do I need to be on Ubuntu for this session ? 53 [16:12] <dholbach> Kroosec, no, not necessarily - later on for the tutorials probably 54 [16:12] <dholbach> <raju> QUESTION: was session started ? 55 [16:12] <dholbach> raju, yes - if you missed the start there will be logs on https://wiki.ubuntu.com/UbuntuDeveloperWeek later on 56 [16:13] <dholbach> the CDs are mostly built every single day, so that's what we use for installation tests, etc. 57 [16:13] <dholbach> <middle> QUESTION: WIll there be a formal QnA later on? I want to ask questions but not interrrupt you 58 [16:13] <dholbach> manish raju: you dont put that 59 [16:14] <dholbach> middle: please just ask - I'll decide myself when I take a small break to answer a couple of questions :) 60 [16:14] <dholbach> ok, so much for the Ubuntu archive, packages and how they're built 61 [16:14] <dholbach> let me talk a bit about the Ubuntu release cycle 62 [16:15] <dholbach> what Ubuntu developers focus on heavily depends on the release schedule 63 [16:16] <dholbach> as you know Ubuntu is released every 6 months, and to able to deliver on the exact date, we need to stick to the dates in the schedule 64 [16:16] <dholbach> if you want to see the schedule for the current development release, check out https://wiki.ubuntu.com/NattyReleaseSchedule 65 [16:17] <dholbach> if you don't have problems with seeing colours, you see that there's green at the start and red at the end 66 [16:17] <dholbach> "green" does NOT mean: "it's all working, it's all great" 67 [16:17] <dholbach> it rather means "everything goes, you can upload whatever changes you want/need" :) 68 [16:18] <dholbach> towards the end of the release cycle we introduce more and more freeze dates, where the changes are becoming less and less intrusive 69 [16:18] <dholbach> but let's go back to the beginning 70 [16:18] <dholbach> first the toolchain (the most basic build-relevant packages) are set up, then we work on merging changes that have happened in Debian (and other software projects) since we got out the last release 71 [16:19] <dholbach> then there's Ubuntu Developer Summit (UDS), which I'll talk about a bit later - for now it should be enough to say that it's where the features of the release are defined and agreed on 72 === tarun is now known as Guest97414 73 === Guest97414 is now known as c2tarun 74 [16:20] <dholbach> Debian Import Freeze is the first freeze date that appears in the list - it's where we stop to automatically "sync" source packages from Debian 75 [16:20] <dholbach> this is done as a measure to start to stabilise the code in Ubuntu, but can be overriden in warranted cases 76 [16:21] <dholbach> next up is Feature Freeze, where we expect big parts of features to be landed 77 [16:21] <dholbach> if they still have bugs, that's fine, but if they're not there in rudimentary form, then that's a problem and we might consider to postpone them to the next release 78 [16:22] <dholbach> Feature Freeze is also the date where try to slow down introducing new versions of packages (again: in order to stabilise, and yes there might be warranted cases where we want to override) 79 [16:22] <dholbach> from Feature Freeze on, we introduce more and more other freezes, UI, Docs, Kernel, etc etc 80 [16:23] <dholbach> this is done, so that we focus on show stopper bugs and don't introduce any big changes any more and bring Ubuntu in a releasable form :) 81 [16:23] <dholbach> April 28th is the date we're aiming for this release and I'm quite sure that that's where we'll get the release out :) 82 [16:24] <dholbach> <udienz> Question: How long someone can be a MOTU? 6 month from first upload or depends on how much uploaded or depends from recommendations? 83 [16:24] <dholbach> udienz, to become an Ubuntu developer I'd prefer not to give and concrete number of weeks/months 84 === MickStep is now known as QUESTION 85 === RobertM is now known as Guest98250 86 [16:24] <dholbach> I personally feel that if you gained the trust of other developers you've worked with (more on the topic later on), you're ready 87 [16:25] <dholbach> ok, so much for the release schedule for now :) 88 [16:26] <dholbach> but I guess you got a better idea now why it makes more sense to upload a rewrite of a piece of software EARLY in the cycle, and not 5 days before release :) 89 [16:26] <dholbach> etc :) 90 [16:27] <dholbach> and you can also imagine now that with thousands of packages, millions of lines of code, hundreds of project and hundreds of developers communication/coordination is very important 91 [16:27] <dholbach> <monish001> QUESTION: How would developer's code get into the main ubuntu code? Which tools are used for development and commits, how these commits are tested by others for authentication? 92 [16:27] <dholbach> monish001, I'll get to that in a bit 93 [16:28] <dholbach> <hugohirsch> QUESTION (later): I find a bug in a gnome package, checked out the sources, discovered that the bugfix merely is a 'remove commented out line in sources' - how do I get this into Ubuntu? 94 [16:28] <dholbach> hugohirsch: I'll get to that in a few minutes as well :) 95 [16:28] <dholbach> I touched on UDS (Ubuntu Developer Summit) a bit earlier on already 96 [16:29] <dholbach> it's where hundreds of people get together in one location and for one week discuss all kinds of problems they want to solve in the next cycle 97 [16:29] <dholbach> the great thing is, if you can't be there physically, you can attend remote (talk on IRC and listen in via audiocast) 98 [16:30] <dholbach> the outcomes of the sessions are written up as specifications, so all the ideas, assumptions, rationale and action plan is recorded publicly and others can involved helping to solve those problems 99 [16:31] <dholbach> while this works well for "big picture" things, there are loads of day-to-day decisions that are made on mailing lists (firstname.lastname@example.org for example) or on IRC channels, such as #ubuntu-devel 100 [16:31] <dholbach> of course if there's a specific software project that interests you that is outside of Ubuntu, you might want to be on the project's mailing list and IRC channel as well 101 [16:32] <dholbach> another important medium for discussion and coordination is bug reports 102 [16:32] <dholbach> you can find all of Ubuntu's bugs at https://bugs.launchpad.net/ubuntu 103 === pixelmeister_ is now known as rechengehirn 104 [16:33] <dholbach> it makes it much easier to stay on top of what needs to be fixed if you're subscribed to a specific package's bugs, talk to its authors, etc 105 [16:34] <dholbach> we also make deliberate use of bug statuses, tags and assignee fields to track what's in progress and who's working on it 106 [16:34] <dholbach> <hugohirsch> QUESTION: What's the 'process' model of Canonical/Ubuntu? Scrum? XP? How are you guys managed/tracked? 107 [16:35] <dholbach> hugohirsch, first you need to distinguish between Canonical and Ubuntu - Canonical's engineers are part of the Ubuntu community as is everyone else 108 [16:35] <dholbach> there are a lot of software projects that originate in the Ubuntu world and they make use of whatever release management they like best 109 [16:36] <dholbach> there is the Kanban approach in Launchpad for example, there is others that "release when it's ready" 110 [16:36] <dholbach> there's others who have regular meetings, etc. - there's a huge variety 111 [16:36] <dholbach> I mentioned it before already... we rely on a lot of other software projects 112 [16:37] <dholbach> not all the code that is shipped in Ubuntu is written by Ubuntu developers 113 [16:37] <dholbach> projects that release code which we integrate into Ubuntu are called "upstream projects" or short "upstreams" 114 [16:37] <dholbach> it's critically important to us to have a great relationship to all of these 115 [16:38] <dholbach> we need to talk about timeframe of releases, pass on information about bug reports, pass on code changes, etc 116 [16:38] <dholbach> one of the most important Upstream projects for us is Debian (luckily, there'll be dedicated session about Debian later in the week) 117 [16:38] <dholbach> Debian is a distribution itself and we inherit a lot of changes immediately from Debian 118 [16:39] <dholbach> also were most of the technical decisions made in (or in conjuction with) Debian too 119 [16:40] <dholbach> so there's package maintainers or package maintenance teams in Debian, with whom it's very interesting to have a conversation if you plan changes or want to coordinate work 120 [16:40] <dholbach> (as I said earlier: there'll be a session about that later in the week - YES!) 121 [16:40] <dholbach> <wolfpack> QUESTION: on Which Irc channel can I get help on develoment related question/problems? 122 [16:40] <dholbach> wolfpack, #ubuntu-motu on irc.freenode.net should be a good start 123 [16:41] <dholbach> ok... some of you wanted to know earlier already... how do I get my changes into Ubuntu 124 [16:41] <dholbach> so let's talk about that now 125 [16:41] <dholbach> it's not daunting at all and it's very rewarding - not only because you learn something new every single time (at least I did), but also because you fix problems for millions of users out there 126 [16:42] <dholbach> because new contributors can't immediately upload to the build machines themselves (we use GPG to track who uploaded changes, etc.), they need somebody who reviews their changes first and uploads for them 127 [16:43] <dholbach> and that's a great way to learn, as you interact with loads of different people and they all might teach you something new 128 [16:43] <dholbach> and also you make loads of great friends 129 [16:44] <dholbach> barry will later on talk about Ubuntu Distributed Development, so explaining the exact process of how to branch a source package, how to submit changes, etc. 130 [16:44] <dholbach> so I won't steal his thunder by going into technical details :) 131 [16:45] <dholbach> basically: you get the source, you make your changes, you test build the code, test it, push it for review, get it reviewed and uploaded - BUG FIXED :) 132 [16:45] <dholbach> <hugohirsch> QUESTION: Do I need to choose a reviewer or is a reviewer assigned via Launchpad automatically? 133 [16:45] <dholbach> hugohirsch, you don't have to choose 134 === dholbach_ is now known as dholbach 135 === rahadian is now known as razorBAT 136 [16:47] <dholbach> sorry 137 [16:47] <dholbach> fell out of the internet for a second :) 138 [16:48] <dholbach> hugohirsch, naturally if somebody has their special area of expertise with some package, you might talk to them over and over again :) 139 [16:48] <dholbach> <mauriciocinelli> QUESTION: What languages are used for Ubuntu Development? 140 [16:48] <dholbach> mauriciocinelli, all kinds: C, C++, Python, Perl, Java, Mono, Vala, etc etc etc. 141 [16:48] <dholbach> the good thing is: you don't need to know "all of them" to get started 142 [16:49] <dholbach> you can easily lay back, take it easy, fix a few simple and obvious bugs first and take it from there 143 [16:49] <dholbach> and as I said a couple of times already: you learn more and more over time 144 [16:49] <dholbach> <abcd87> QUESTION: how to customize the bootloader? 145 [16:50] <dholbach> abcd87, I'm afraid I don't know - if you elaborate on your question, you might find somebody who's cleverer than me in #ubuntu-devel :) 146 [16:50] <dholbach> I really like mauriciocinelli's question, so I'll talk about that a little bit more 147 [16:51] <dholbach> if you ask me it's not so much about knowing n+1 programming languages already 148 [16:51] <dholbach> it's about having a knack for making things work again 149 [16:51] <dholbach> it's about doing some detective work 150 [16:51] <dholbach> it's about being a team player 151 [16:51] <dholbach> it's about not being afraid of reading documentation 152 [16:51] <dholbach> it's about not being afraid of asking a few (seemingly) stupid questions 153 [16:52] <dholbach> if you answered "Yes" more often than "no" to the points above, you should fit right in 154 [16:53] <dholbach> detective work also involves talking to upstreams and people from other distributions, coordinating with them - sometimes a fix for a specific issue might be available already and you just need to get it into Ubuntu as well 155 [16:53] <dholbach> <MeanEYE> QUESTION: Are you considering using Go (Google's language) at one point since it's designed for OS/service development 156 [16:53] <dholbach> MeanEYE, I don't know how many packages already make use of it 157 === bobthebob is now known as bobthebob1234 158 [16:54] <dholbach> but I'm sure it will get considered if there's demand for it 159 [16:54] <dholbach> Ok... with that I suggest we take a 5 minute break before I help you get started and get your development environment set up 160 [16:54] <dholbach> so get yourself a coffee or tea or glass of water and I'll see you in 5 minutes 161 === abc_ is now known as Guest32570 162 [17:00] <dholbach> ok... we're back for part 2 of "getting started with ubuntu development" 163 [17:01] <dholbach> for those of you who came late... don't worry - we'll put up logs of all sessions up at https://wiki.ubuntu.com/UbuntuDeveloperWeek later 164 [17:01] <dholbach> also, if you want to chat, ask questions and all the rest of it, please head to #ubuntu-classroom-chat 165 [17:01] <dholbach> and prefix questions with QUESTION 166 [17:01] <dholbach> <jack002> QUESTION: What about for people that don't know any programming language? How can they help with development process? Translations, reporting bugs, testing the code, discussing in the brainstorm. Is there more? Any web page? 167 [17:02] <dholbach> jack002, you can do all of what you mentioned, but you can also try to fix small and obvious bugs - don't hesitate :) 168 [17:02] <dholbach> <middle> QUESTION: What do yo uthink hte best route froa student currently studying A-levels woulkd be to get intot eh wolrd of open source software development? 169 [17:03] <dholbach> middle: yes, I think it's a great choice to get involved in Ubuntu development - you'll learn loads because you basically touch all parts of an operating system - it's a fun experience and will help you figure out what you really enjoy doing 170 [17:03] <dholbach> <darkdevil56> QUESTION: James Gosling resigns from sun/oracle and now oracle wont provide support for J2SE n J2M. will this affect ubuntu packaging in java? 171 [17:03] <dholbach> *J2ME 172 [17:04] <dholbach> darkdevil56, I'm not a Java hacker, so I don't know - I personally haven't heard of any big concerns in the open source community yet though 173 [17:04] <dholbach> <qayshp> QUESTION: will ubuntu/canonical be taking part in the Google Summer of Code this year? 174 [17:04] <dholbach> qayshp, Ubuntu will definitely apply as a mentoring organisation - the decision will be with Google though :) 175 [17:05] <dholbach> alrightie 176 [17:05] <dholbach> that's all the outstanding questions from part 1 as far as I could see 177 [17:05] <dholbach> in part 2 I'll help you get your ubuntu development environment set up 178 === QUESTION is now known as MickStep 179 [17:06] <dholbach> you will need reasonably fast internet for this, so if things take longer for you, don't despair - take it easy and just open a second terminal and continue with other steps in the meantime 180 [17:07] <dholbach> also there might be some steps involved that you already did on your own some time ago - feel free to skip those 181 [17:07] <dholbach> (ie: you set up a GPG key already - you don't need two :-)) 182 [17:07] <dholbach> alrightie 183 [17:07] <dholbach> let's get cracking :-D 184 [17:07] <dholbach> in a terminal, please run this command 185 [17:07] <dholbach> sudo apt-get install gnupg pbuilder ubuntu-dev-tools bzr-builddeb 186 [17:08] <dholbach> while it runs and installs a few packages, I'll talk a bit more about what we're doing here 187 [17:08] <dholbach> once we're done with this session, 188 [17:08] <dholbach> - you have all the tools to do Ubuntu development installed on your machine 189 [17:08] <dholbach> - your local developer tools know about you, which simplifies work a lot 190 [17:08] <dholbach> - you can do local builds of packages 191 [17:09] <dholbach> - you can interact with other developers and propose your changes on Launchpad to get merged 192 [17:09] <dholbach> - you can upload packages to Launchpad, so they are hosted in your Personal Package Archive (PPA) 193 [17:09] <dholbach> another word of advise: if you do Ubuntu development, it's incredibly helpful to run the current development release 194 [17:10] <dholbach> we all know that from time to time the current development release is quite broken, so it's obvious that you might not want to run it as your one and only Ubuntu system 195 [17:10] <dholbach> https://wiki.ubuntu.com/UsingDevelopmentReleases explains how you can easily and safely use the development release 196 [17:10] <dholbach> (you don't need to do that now) 197 [17:11] <dholbach> <hugohirsch> QUESTION: If I have a private GPG-key and one for ubuntu development. What do you recommend? Work as a separate user with the ubuntu-GPG-key or is there an easy way to switch between keys when working on ubuntu-stuff on the console ? 198 [17:11] <dholbach> hugohirsch, you can easily specify whichever one you want to use 199 [17:11] <dholbach> <fisch246> QUESTION: did you mean to say PGP, instead of GPG? 200 [17:11] <dholbach> fisch246, I meant to say GPG (GNU Privacy Guard), which implements the OpenPGP standard 201 [17:12] <dholbach> <mauriciocinelli> QUESTION: During install it asks general type of mail configuration? 202 [17:12] <dholbach> mauriciocinelli, sorry about that - you can also run the install command with "--no-install-recommends" if you want to avoid the mail configuration 203 [17:12] <dholbach> <stefwal82> QUESTION: how is the gpgkey introduced in the mended package 204 [17:12] <dholbach> stefwal82, I don't understand the question 205 [17:13] <dholbach> <darkdevil56> QUESTION: what's postfix config? 206 [17:13] <dholbach> darkdevil56, you can also run the install command with "--no-install-recommends" if you want to avoid the mail configuration 207 [17:13] <dholbach> ok.. let's see what kind of packages we're installing right now....... 208 [17:13] <dholbach> there's: 209 [17:13] <dholbach> - gnupg which you will need to create a GPG key with which you will sign files you want to upload to Launchpad 210 [17:14] <dholbach> - pbuilder which is a great tool to do a reproducible build of a package in a clean and isolated environment 211 [17:14] <dholbach> - ubuntu-dev-tools (and devscripts, a direct dependency) which provide you with a collection of tools that make a lot of packaging tasks a lot easier 212 [17:14] <dholbach> - and there's bzr-builddeb (and bzr, a dependency) which will get you set up for working in the distributed development environment, that makes it easy for many developers to collaborate and work on the same code while keeping it trivial to merge each others work 213 [17:16] <dholbach> A few people seem to have problems downloading packages - if you hit any problems, please head to #ubuntu-classroom-chat - there's people who are going to help you out. 214 [17:16] <dholbach> ok... let's talk about gpg (GnuPG) first 215 [17:16] <dholbach> it is important that you can sign files with your key, so they can be identified as something that you worked on 216 [17:17] <dholbach> if you upload a source package to Launchpad, it will only accept the package if it can tell who uploaded the package 217 [17:17] <dholbach> If you don't have a GPG key yet, please run this command in a terminal: 218 [17:17] <dholbach> gpg --key-gen 219 [17:17] <dholbach> GnuPG will first ask you which kind of key you want to generate. Choosing the default (RSA and DSA) is fine. 220 [17:17] <dholbach> Next it will ask you about the keysize. The default (currently 2048) is fine, but 4096 is more secure. 221 [17:18] <dholbach> Afterwards it will ask you if you want it to expire the key at some stage. It is safe to say â€œ0â€, which means the key will never expire. 222 [17:18] <dholbach> The last questions will be about your name and email address. Just pick the ones you are going to use for Ubuntu development here, you can add additional email addresses later on. 223 [17:18] <dholbach> <middle> QUESTION: gpg --key-gen 224 [17:18] <dholbach> middle: sorry, my mistake 225 [17:18] <dholbach> it's: 226 [17:19] <dholbach> gpg --gen-key 227 [17:20] <dholbach> once you're done with the questions it asked, there'll be also one about a "comment" 228 [17:20] <dholbach> Adding a comment is not necessary. 229 [17:20] <dholbach> Then you will have to set a passphrase. Choose a safe one. 230 [17:20] <dholbach> Now GnuPG will create a key for you, which can take a little bit of time, as it needs random bytes, so if you give the system some work to do it will be just fine. 231 [17:21] <dholbach> just keep it sitting there and do its work - if it takes very long, open another terminal :) 232 [17:22] <dholbach> the next step will be to generate a SSH key 233 [17:22] <dholbach> SSH is a network protocol that allows you to exchange data in a secure way over the network. In a lot of cases you will use it to access and open a shell on another machine. It is also very useful to transfer files in a secure way. 234 [17:22] <dholbach> if you don't have an SSH key yet, just run 235 [17:22] <dholbach> ssh-keygen -t rsa 236 [17:22] <dholbach> The default filename makes sense, you can just leave it as it is. Also you can choose to use a passphrase or not. 237 [17:23] <dholbach> We will use the SSH key to securely push code changes to Launchpad. 238 === msnsachin12 is now known as msnsachin 239 [17:23] <dholbach> next we'll set up pbuilder 240 [17:23] <dholbach> pbuilder allows you to build packages locally on your machine. It serves a couple of purposes: 241 [17:24] <dholbach> - the build will be done in a minimal and clean environment, where you can see if it succeeds in a reproducible way (with no modifications of the local system 242 [17:24] <dholbach> - there is no need to install all necessary build-dependencies locally 243 [17:24] <dholbach> - you can set up multiple instances for various Ubuntu and Debian releases 244 [17:24] <dholbach> <gartral|watcher> QUESTION: why should communications be secured with RSA instead of AES? 245 [17:25] <dholbach> gartral|watcher, I'm afraid I don't know the answer to that question - it's what we use... you might get a more elaborate answer on #ubuntu-devel though :) 246 [17:25] <dholbach> <wolfpack> QUESTION: Does pushing code neccesary nedds ssh connection? As I am working university network proxy and can make connection through http only. 247 [17:25] <dholbach> wolfpack, that might be a problem then - the nice people in #launchpad might give you an alternative option 248 [17:26] <dholbach> <abhinav51> QUESTION: I already have ssh keys set up (I created them for use with github). Do I need to regenerate ? 249 [17:26] <dholbach> abhinav51, no, not necessary 250 [17:26] <dholbach> Setting pbuilder up is very easy. Edit ~/.pbuilderrc and add the following line to it: 251 [17:26] <dholbach> COMPONENTS="main universe multiverse restricted" 252 [17:26] <dholbach> and save the file 253 [17:27] <dholbach> This will ensure that build-dependencies are satisfied using all components. 254 [17:27] <dholbach> then run: 255 [17:27] <dholbach> pbuilder-dist natty create 256 [17:27] <dholbach> This will take a while as it will download all the necessary packages for a â€œminimal installationâ€. These will be cached though. 257 [17:28] <dholbach> the great thing about pbuilder-dist is, that you can also set up build environments for other Ubuntu (or Debian) releases 258 [17:28] <dholbach> (just replace "natty" with whatever else you need) 259 [17:28] <dholbach> <gartral|watcher> QUESTION: more of an extension of the previous question, but, will launchpad accept keys larger than 2048 bits? 260 [17:28] <dholbach> gartral|watcher, I could very well imagine that yes they do, but you might want to ask that question in #launchpad too :) 261 [17:28] <dholbach> (sorry :)) 262 [17:29] <dholbach> <cire831> QUESTION: you specify natty on the pbuilder-dist cmd line, does it matter that I'm running on a lucid box? 263 [17:29] <dholbach> cire831, no, it should still work :) 264 [17:29] <dholbach> <middle> QUESTION: I htink some of your commands are off, there was nothing in the file that we added the line to ans nuilder-dist wasn#'t found =s 265 [17:29] <dholbach> middle: if ~/.pbuilderrc was empty, that's totally fine 266 [17:29] <dholbach> <maco> QUESTION: will pbuilder-dist be upstreamed to Debian? I was surprised to learn that it's in ubuntu-dev-tools rather than devscripts 267 [17:30] <dholbach> maco, it'd be great to see it in Debian too - if you want to propose it for devscripts, please go ahead and do it :) 268 [17:30] <dholbach> maco, you of all people should know how to get that done :-D 269 [17:30] <dholbach> <hugohirsch> QUESTION: Is there a way to make pbuilder use more than one core on a multicore machine? 270 [17:31] <dholbach> hugohirsch, I would think so - can somebody confirm in #ubuntu-devel? :) 271 [17:31] <dholbach> <mainerror> QUESTION: There is no ..pbuilderrc in my home directory 272 [17:31] <dholbach> mainerror, that's fine - just create it 273 [17:31] <dholbach> <gmargo3> QUESTION: Must pbuilder-dist be run as root? Or does it use a fakeroot behind the scenes? 274 [17:31] <dholbach> gmargo3, the reason why pbuilder-dist (via pbuilder) uses root is that it uses chroot internally 275 [17:32] <dholbach> <cire831> QUESTION: where is it putting the natty files? 276 [17:32] <dholbach> cire831, ~/pbuilder 277 === IAmNotThatGuy is now known as M0hi 278 [17:32] <dholbach> <monish001> QUESTION: In ~/.pbuilderrc , which directory does ~ means? 279 [17:32] <dholbach> monish001, your home folder 280 [17:33] <dholbach> alright, let's crack on :) 281 [17:33] <dholbach> next we'll teach Bazaar about yourself 282 [17:33] <dholbach> Bazaar is the tool we use to store code changes in a logical way, to exchange proposed changes and merge them, even if development is done concurrently. 283 [17:33] <dholbach> Simply run: 284 [17:33] <dholbach> bzr whoami "Frank Chu <email@example.com>" 285 [17:33] <dholbach> bzr launchpad-login fchu 286 [17:33] <dholbach> (please, if your name is not "Frank Chu", replace with your own name, thanks) 287 === wolfpack is now known as Guest40940 288 [17:34] <dholbach> if you don't have a launchpad account yet, you can get it if you sign up at https://launchpad.net/+login 289 [17:35] <dholbach> (and do that step later on) 290 [17:35] <dholbach> if you have launchpad account, your launchpad id is whatever is after "~" in the URL that https://launchpad.net/people/+me redirects you to 291 [17:35] <dholbach> <middle> QUESTION: What do we do with our SSh key, can we jsut close the terminal as it is saved somewhere or do we need to write it down? 292 [17:35] <dholbach> middle: yes, just close it - that's fine 293 [17:36] <dholbach> ok, next we'll teach the development tools about ourselves 294 === Guest40940 is now known as wolfpack 295 [17:36] <dholbach> Edit ~/.bashrc (if you use a different shell use whatever configuration file it comes with) 296 [17:36] <dholbach> and add something like this to the bottom: 297 [17:37] <dholbach> export DEBFULNAME="Frank Chu" 298 [17:37] <dholbach> export DEBEMAIL="firstname.lastname@example.org" 299 [17:37] <dholbach> (again, please replace with whatever YOUR name and YOUR email is :)) 300 [17:37] <dholbach> afterwards save the file and run 301 [17:37] <dholbach> source ~/.bashrc 302 [17:38] <dholbach> sorry, please make this DEBFULLNAME 303 [17:38] <dholbach> (thanks sapphirepaw) 304 [17:39] <dholbach> if you have a look back at the terminal where your gpg key was created, you might see a message like this: 305 [17:39] <dholbach> pub 4096R/43CDE61D 2010-12-06 306 [17:39] <dholbach> Key fingerprint = 5C28 0144 FB08 91C0 2CF3 37AC 6F0B F90F 43CD E61D 307 [17:39] <dholbach> uid Daniel Holbach <email@example.com> 308 [17:39] <dholbach> sub 4096R/51FBE68C 2010-12-06 309 [17:39] <dholbach> in this case "43CDE61D" is my GPG ID 310 [17:40] <dholbach> if you had a GPG key before, run this: 311 [17:40] <dholbach> gpg --fingerprint <firstname.lastname@example.org> 312 [17:40] <dholbach> it should give you a similar output 313 [17:40] <dholbach> once you know your gpg key id, you can run: 314 [17:40] <dholbach> gpg --send-keys <KEY ID> 315 [17:40] <dholbach> which will upload your key to the keyservers, which allows others to confirm that something you signed is actually from you 316 [17:41] <dholbach> (if you uploaded it already, you can obviously skip that step) 317 [17:42] <dholbach> it would take too much time to go through all the individual steps (it's not that bad actually) to register you gpg and ssh key with LP, so for now I'll just give you the links you need: 318 [17:42] <dholbach> - https://launchpad.net/people/+me/+editpgpkeys (GPG key registration) 319 [17:42] <dholbach> - https://help.launchpad.net/YourAccount/ImportingYourPGPKey (docs for gpg key registration) 320 [17:42] <dholbach> - https://launchpad.net/people/+me/+editsshkeys (ssh key registration) 321 [17:42] <dholbach> - https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair (docs for ssh key registration) 322 [17:42] <dholbach> and that's really it :-) 323 [17:43] <dholbach> <fisch246> QUESTION: "bzr: ERROR: The user paul-mcspadden has not registered any SSH keys with Launchpad." and how do i go about doing this? 324 [17:43] <dholbach> fisch246, you can fix this at https://launchpad.net/people/+me/+editsshkeys 325 [17:43] <dholbach> <HoellP> QUESTION: How can i delete an outdated key from the keyserver? 326 [17:43] <dholbach> HoellP, as far as I know you can revoke a gpg key locally and then upload the revoked key to keyservers 327 [17:44] <dholbach> <stefwal82> QUESTION: how do you sign something? 328 [17:44] <dholbach> stefwal82, the development tools will do that "automatically" for you, but you can set up your mail client to sign mails, or sign files manually 329 [17:44] <dholbach> <hugohirsch> QUESTION: Sending the gpg-key fails with 'keyserver not configured' error. Can I upload my GPG-key to launchpad or does it need to be available via an open key server? 330 [17:46] <dholbach> hugohirsch, you can specify --keyserver keyserver.ubuntu.com (for example) 331 [17:46] <dholbach> <darkdevil56> QUESTION: which key am i supposed to send? pblic or secret? 332 [17:46] <dholbach> darkdevil56, never share the secret key (--send-keys will figure that out for you) 333 [17:47] <dholbach> <monish001> QUESTION: Output of 'bzr whoami "Name <mailId>" '? I am getting blank.. 334 [17:47] <dholbach> monish001, that's fine - the command succeeded 335 [17:49] <dholbach> any more questions? 336 [17:49] <dholbach> if you missed anything, or things are still being worked on, just follow the log of the session later on again - it's fine if you needed a little bit more time :) 337 [17:49] <dholbach> <hugohirsch> QUESTION: Thx - uploaded my GPG-key. Will it automatically be connected/synced with my Launchpad account? 338 [17:50] <dholbach> hugohirsch, no, you need to head to https://launchpad.net/people/+me/+editpgpkeys to tell Launchpad about it 339 [17:50] <dholbach> <darkdevil56> QUESTION: the ssh command that i had typed earlier is retrieving and validating all the packagges till now.. is this normal? 340 [17:50] <dholbach> darkdevil56, that must be the pbuilder-dist command - yes that's to be expected - just let it do its work :) 341 [17:50] <dholbach> <mauriciocinelli> QUESTION: Is there anything else we need? 342 [17:51] <dholbach> mauriciocinelli, that should be it for now - it should set you up for a good start - whatever else is required for others sessions will be dealt with there 343 [17:51] <dholbach> are there maybe some more general questions about Ubuntu development? 344 [17:51] <dholbach> we still have ~10 minutes before I have to hand the mic to barry :) 345 [17:52] * barry clears his throat 346 [17:52] <dholbach> <steinex> QUESTION: not completely related, more about the process itself: are the packages synced from debian just the plain packages and ubuntu does the ubuntuspecific patches from-scratch for every new release? or are ubuntu-patches automatically applied on sync and if they don't merge, they must be merged by hand? 347 [17:52] <dholbach> steinex, good question and it will be dealt with in the Debian session 348 === kai__ is now known as rechengehirn 349 [17:53] <dholbach> for now: if the source is unmodified from Debian and we're before Debian Import Freeze, they will be synced automatically and built in Launchpad 350 [17:53] <dholbach> if there are ubuntu changes we need to "merge" and we have a tool that helps us with that (http://merges.ubuntu.com) 351 [17:53] <dholbach> <acarpine> QUESTION: I read something about https://wiki.ubuntu.com/MOTU/Mentoring Could you explain more in detail how it works and who should use it? 352 [17:53] <dholbach> acarpine, unfortunately the Mentoring programme is out of order at this moment 353 [17:54] <dholbach> I suggest you check out https://wiki.ubuntu.com/MOTU/GettingStarted and please feel very welcome to ask all the questions you have in #ubuntu-packaging or #ubuntu-motu 354 [17:54] <dholbach> even if it's not a dedicated mentor for you, there's loads of people who are very happy to help you get started and solve your problems 355 [17:54] <dholbach> <hugohirsch> QUESTION: I uploaded my key, but LP doesn't find the key with the given fingerprint. Do I need to wait for synchronisation between LP and Ubuntu-Keyserver? 356 [17:54] <dholbach> hugohirsch, yes, you might have to wait a little bit (I don't know the exact timeframe, sorry) 357 [17:55] <dholbach> <wolfpack> QUESTION: Does ssh key are need to be updated with every new distro release or new computer? 358 [17:55] <dholbach> wolfpack, no, just leave them as they are 359 [17:55] <dholbach> <jledbetter> QUESTION: So, now that we have our environment set up, we look at https://bugs.launchpad.net/ubuntu and -- that's where I'm not sure. 360 [17:55] <dholbach> jledbetter, the upcoming sessions and https://wiki.ubuntu.com/MOTU/GettingStarted should give you some ideas where to look for bugs to fix and how to go about it :) 361 [17:56] <dholbach> more questions? we still have 5 minutes :) 362 [17:56] <dholbach> <cire831> QUESTION: when I uploaded the key it said it was uploading it to keys.gnupg.net. On launchpad under editpgpkeys it says something about Ubuntu keyservers. Will the Ubuntu keyserver get the new key directly from the gnupg keyserver? 363 [17:56] <dholbach> cire831, yes, it will take a few minutes 364 [17:56] <dholbach> <saimanoj> QUESTION:Are ubuntu packages sent back to Debian? 365 [17:56] <dholbach> saimanoj, nice one! 366 [17:57] <dholbach> sending patches back to Debian (or other upstreams) is a manual process and very important 367 [17:57] <dholbach> it is indeed being done 368 [17:57] <dholbach> and there will be more info about that in the Debian session which I believe will be tomorrow 369 [17:57] <dholbach> <acarpine> QUESTION: Fixing bugs, when choose bzr and when use a traditional process (create a patch with a debdiff)? 370 [17:58] <dholbach> acarpine, bzr is a REALLY nice way to go about fixing stuff and barry will take the next hour to walk you through it 371 [17:58] <dholbach> if it should not work out for you, I'm sure that barry will love to hear more about it and yes, in that case the "traditional process" of posting a patch will work too 372 [17:58] <dholbach> <stefwal82> QUESTION: in former courses you gave examples, why don't you now? 373 [17:58] <dholbach> stefwal82, I type too slowly - not enough time :) 374 [17:59] <dholbach> and I really enjoy answering loads of questions here - I hope it's useful 375 [17:59] <dholbach> there'll be more examples in other sessions this week 376 [17:59] <dholbach> <simar> QUESTION: When I run gpg-key fingerprint <email>, I get three uid, what does it mean? 377 [17:59] <dholbach> simar, do you have more than one gpg key? 378 [17:59] <dholbach> ah no... is that maybe different user IDs on the same key? in any case it shouldn't be a problem 379 [18:00] <dholbach> <cire831> QUESTION: is the debian session being talked about the same as "Getting fixes into Debian"? 380 [18:00] <dholbach> "Getting fixes into Debian" will definitely be part of it 381 [18:00] <dholbach> <middle> QUESTION:What has this allowed me to actually do?! 382 === ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Introduction to Ubuntu Distributed Development (UDD) - Instructors: barry 383 [18:01] <dholbach> - you have all the tools to do Ubuntu development installed on your machine 384 [18:01] <dholbach> - your local developer tools know about you, which simplifies work a lot 385 [18:01] <dholbach> - you can do local builds of packages 386 [18:01] <dholbach> - you can interact with other developers and propose your changes on Launchpad to get merged 387 [18:01] <dholbach> - you can upload packages to Launchpad, so they are hosted in your Personal Package Archive (PPA) 388 [18:01] <dholbach> and I'm out of time 389 [18:01] <barry> hi, my name is barry warsaw, and i live near washington dc. i work for canonical, do ubuntu development, am a core python developer and project leader for gnu mailman. i'm here to introduce you to a new way of developing ubuntu, called 'ubuntu distributed development', or 'udd' 390 [18:01] <dholbach> next up is the ROCKing Barry Warsaw 391 [18:01] <barry> thanks dholbach!