GetStarted
Dev Week -- Getting Started with Ubuntu Development -- dholbach -- Mon, Feb 28th, 2011
Toggle line numbers
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 (ubuntu-devel@lists.u.c 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 <fchu@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="fchu@example.com"
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 <dh@mailempfang.de>
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 <email@address.com>
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!
MeetingLogs/devweek1103/GetStarted (last edited 2011-03-02 05:47:57 by 111)