[05:35] Hi there === Tw|sT is now known as Tw|sT[Zzz] [06:01] when d class will start? [06:01] !classroom [06:01] The Ubuntu Classroom is a project which aims to tutor users about Ubuntu, Kubuntu and Xubuntu through biweekly sessions in #ubuntu-classroom - For more information visit https://wiki.ubuntu.com/Classroom [06:02] MysteriousMan: actually the topic also has links to the schedule direcetly. [06:02] ok thanks === Tw|sT[Zzz] is now known as Tw|sT === Tw|sT is now known as Tw|sT[Zzz] === croppa_ is now known as croppa [08:58] #ubuntu-classroom-backstage === coalwater_ is now known as coalwater [13:36] !list [13:36] This is not a file sharing channel (or network); be sure to read the channel topic. If you're looking for information about me, type « /msg ubottu !bot ». If you're looking for a channel, see « /msg ubottu !alis ». [13:40] me [13:49] ChaseVoid, Classes begin in a couple of hours, if I'm not mistaken [13:53] how long until the first classes? my clock is messed up :\ [13:54] classes start at 16:00 UTC. That's just over 2 hours away. [13:54] tumbleweed: Ok, thanks :) [14:02] http://timeanddate.com/worldclock/fixedtime.html?year=2011&month=7&day=11&hour=16&min=0&sec=0 === johnsgruber is now known as johnsgruber_lern === johnsgruber_lern is now known as jgruber_lernid [14:16] hi [14:17] hello [14:20] philiodilio go for ubuntu-classroom-chat , i think we are not allowed to char here [14:20] chat i meen [14:20] np [14:22] hi [14:23] friends [14:23] hello [14:23] hi there [14:23] do we have any special schedule for ubntu classroom? [14:23] http://ubuntuclassroom.wordpress.com/2011/07/11/coming-up-ubuntu-developer-week-day-1/ [14:23] i read about ubuntu developer week [14:23] and irc [14:23] class [14:24] but [14:24] Just the one mentioned over the wiki [14:24] i didn't have any special schedule program about it [14:24] its here: https://wiki.ubuntu.com/UbuntuDeveloperWeek [14:24] sergio91pt: yeah [14:25] sergio91pt: and so we should've have program here [14:25] but i don't see anthing [14:25] what's happended? [14:25] 2 hr remaining [14:25] 16 UTC [14:26] MysteriousMan: you mean here is a program at 2 hr after this time? [14:26] UTC + 5:30 is IST [14:26] type "date -u" in your terminal and it will tell you which UTC time it is [14:26] data -u [14:26] ? [14:26] aha! [14:26] terminal :D [14:28] by the way [14:28] ? [14:28] this channel is only for ubuntu developer week [14:28] or here is a [14:28] another program [14:28] in every day? [14:28] data -u [14:28] Pooya: there are other session, check the Classroom wiki page for the schedule [14:29] mhall119: i know but there was a session about this 5 days [14:29] mhall119: i mean after these days(ubuntu developer week days) is there any other session here? [14:30] Pooya: this channel hosts classes to UbuntuOpenWeek, UbuntuDeveloperWeek, UbuntuAppDeveloperWeek, Packaging Training, Beginner's Team Education Focus Group, UserDays [14:30] it is Mon Jul 11 (14:29:59) UTC 2011 and class start 16 UTC [14:32] Pooya: yes [14:32] mhall119: good, tnx [14:32] . === jonas42 is now known as yunus === yunus is now known as jonas42 [14:33] http://ubuntuclassroom.wordpress.com/2011/07/11/coming-up-ubuntu-developer-week-day-1/ just click where it says the time, and it'll take you to a page where it converts that UTC time into several timezones [14:34] hello world === jonas42 is now known as Jonas42 [14:38] how will the instructor teach? Do I need liinux for this? I have wiindows [14:39] dell_: of course! for example about packaging [14:39] dell_: you must have linux obviously [14:40] May be I should install it in virtualbox. Right [14:41] Today i tried to install ubuntu. But the whole process got messed up. So i will wait till later [14:42] im at work right now, and i probably will be on my way home when this class starts, there will be logs right ? [14:42] do i need any multimedia program and any softwae installation. If i got the instruction now I can install it. Internet here is not that fast [14:43] dell_: be carefull that stop your internet while installing ubuntu! [14:43] coalwater, yes, they will be linked from https://wiki.ubuntu.com/UbuntuDeveloperWeek afterwards [14:43] in virtualbox? May be i will disallow internet access via avg [14:44] dholbach, ur the one giving the class right ? [14:44] yes [14:44] ok i want to ask few things [14:44] the first one, but there'll be many others [14:44] sure, fire away [14:44] dell_: generally , ubuntu tries to download some heavy packages while installing process! [14:45] i read some old logs, it was about the same thing, it was kinda hard, like it's intended for lil more advanced users, or that's how i felt it was [14:46] if you have played around with your Ubuntu system a bit, if you like "making things work again", if you can deal with reading documentation and asking a few questions, I'm sure you'll enjoy this [14:46] hello Ubuntu users.. :) [14:46] Hi [14:46] hey [14:46] dell_: they are not heavy in fact but if your internet is slow it seems heavy :d [14:46] when does the session start [14:46] how long till the class starts? hate time zone calculations [14:47] <--- fails @ timezones.. class starts in 15min? [14:47] excited.. [14:47] 1 hour and 15 minutes I believe :) [14:47] yeah 1 hour and 15 mins [14:47] curse you UTC! [14:47] run 'date -u' in the terminal to get the current UTC time [14:48] or add UTC to your panel clock [14:48] w3bcrawler: What you should actually curse is probably DST. [14:48] no keyboard rofl [14:48] wait what? [14:48] onscreen kbd [14:48] should still work with a terminal windows though, right? [14:49] * mhall119 somtimes forgets that not everybody does IRC through a terminal [14:49] Just add iceland to your clock [14:49] still have some tweaks to do for that [14:50] !time [14:50] Information about using and setting your computer's clock on Ubuntu can be found at https://help.ubuntu.com/community/UbuntuTime - See https://help.ubuntu.com/10.04/serverguide/C/NTP.html for information on usage of the Network Time Protocol (NTP) [14:50] Hi [14:50] not what I was hoping for [14:50] @now [14:50] nigelb: Error: "now" is not a valid command. [14:50] Doesn't wwork here i guess [14:51] !now [14:51] Factoid 'now' not found [14:51] 1 hour and 10 minutes remaining.. :) [14:51] !utc [14:51] Factoid 'utc' not found [14:51] :( [14:51] let's us wait guy.. [14:51] *guys [14:52] How is the session going to be. Does the instructor give us some pdf to read. Or will it be live broadcast [14:52] It will be an IRC-based session [14:53] nigelb: how is it? [14:53] The instructor wll type into the chat window here, and all chatter should be in #ubuntu-classroom-chat [14:53] During the first session, it will be completely explained [14:53] nigelb: #ubuntu-classroom-chat or #ubuntu-classroom ? [14:54] Pooya: Didn't get your question there [14:54] any software besides basic ubuntu setup, we are going to need? [14:54] irc [14:54] nigelb: where the lesson will be? here at #ubuntu-classroom or #ubuntu-classroom-chat? [14:55] That will be here [14:55] #ubuntu-classroom [14:55] dholbach, in case i couldn't make it thru the whole session, can i find you later on #ubuntu-beginners or #ubuntu-beginners-team ? [14:55] just in case i have any questions to ask later on [14:55] discussion will be in #ubuntu-classroom-chat.. there will be logs [14:56] so we need to install mono? what else [14:57] how often are ubuntu dev weeks? [14:57] 2 times a year IIRC [14:57] Do we need to install any packaging software? [14:57] same with Ubuntu Open Week [14:57] and App Developer Week [14:58] dell_: You do, but it will be mentioned in the session [14:58] nice i wish id have known years ago lol [14:58] thanks [14:58] dell_: to be on safer side you can install a few packages [14:58] if you are on a slow connection [14:58] ubuntu-dev-tools [14:58] build-essential [14:59] thank you. Here internet is very slow [15:00] dell_: are you in iran?! i'm sure Iran has the most terrible in the world! [15:00] dell_: terrible internet* [15:00] also install devscripts [15:00] and pbuilder/cowbuilder (not sure which one they would ask to install) [15:01] i am currently installing ubuntu on virtualbox. It's 3 minutes away [15:01] Do we need any multimedia support. Like mp3 and so [15:02] do we need to be on our Ubuntu systems? I can only get on windows since my laptop's got a frayed charger- it's not a practical lesson is it? [15:03] pengper: you can still look at the instructions [15:03] logs would be available later [15:03] pengper, some of them will be practical but you should be able to read the logs afterwards [15:03] well pengper i am installing ubuntu right now on virtual box. Ha ha [15:03] Hi dholbach, waiting for your session [15:03] 57m :-D [15:04] ah right- I'll just take notes quietly then :) [15:04] pengper: when you get back to your system, you can look at the logs and try them out [15:04] too many join/parts :( [15:04] Why do we need classroom-chat if we have this one. Won't the instructor use only this? [15:04] dell_, yes, but chat and questions will be in the other channel [15:05] dell_: this keeps the classroom logs clean [15:05] containing instructions with Q&A [15:05] So what do i follow most of the time. This or other. I have tree view. I may miss that one [15:05] when does this start? [15:05] charlesTerry0528, 55m [15:06] Ok I got it guys. What we are doing right now. We will be doing in chat when the instructor starts here. Right? [15:06] of course, I forgot to subtract British Summer Time. dang, I might miss a bit then [15:07] dell_: this channel will become moderated once the session starts [15:08] and we can speak only in -chat channel [15:08] yes [15:08] well I saw this on facebook "Ubuntu Developer Week begins today! Be sure to join this week of tuition sessions about how to contribute as an Ubuntu developer! See " so I'm guessing you did not miss it, the message was from about 40 minutes ago [15:09] I'm new to prgramming, once I learn Java should I move onto Python? [15:10] Today when I tried to download 64 bit version, the ubuntu site recommends 32-bit. If i have 4 g ram what is best? 64-bit or 32-bit any recommendations [15:10] charlesTerry0528: it depends on your purpose [15:10] charlesTerry0528: java is used for special word , python too, c++ too , ... [15:10] work * [15:11] dell_: It depends on your CPU architecture, not your RAM. If you got your computer recently, it is probably 64 bit. [15:11] my first developer week \o/ [15:12] yes it is 64 bit. But some say ubuntu 64-bit does not support some software. And in 32-bit it only uses ram less than 4 G. Is it true? [15:12] google the make of your computer. it'll tell you whether it's 32 or 64 there [15:12] how many this has been arranged before? [15:12] go with 32 if still uncertain [15:12] tbh it's not a massive change- it's a slight increase in performance, though. [15:12] Mine is 64-bit. I am currently running windows 7 64-bit [15:13] dell_: I am using 64 bit, and everything works great. Actually, the 32 bit ubuntu did not work on my system [15:14] Then I should probably download 64-bit later. [15:14] I currently have 32-bit iso [15:14] @crazed really? i wonder if that's the problem with mine. I have an AMD64 laptop but i used 32 because i didn't know it at the time. I now have a glitch where I get strange lag if I don't have an internet connection. [15:14] pengper: Error: "crazed" is not a valid command. [15:15] oops i mean i was talking to crazed. obvious irc noob here... [15:15] did that post go through? [15:15] I want to develop mucho ubuntu [15:16] pengper: That's probably not related... my problem was that the display didn't work [15:16] is there anyway for converting 32bit iso to 64 bit iso? [15:16] no... [15:16] Pooya: No, you have to download the 64 bit version [15:16] there's 32 bit and 64 bit [15:17] Pyker: i know but it's interseting idea [15:17] Pyker: is it possible to write a program to do this job? [15:17] there are coding differences [15:17] i think it is binary. If it were source code we could compile ubuntu into 64-bit i guess [15:17] there are no programs whatsoever that can convert that [15:17] Pooya: the difference is that 64bit software is compiled on a 64bit system [15:18] crazed: ok. I presume i got a corrupt iso cos our connection is dodgy. virgin is the worst isp we've ever had [15:18] should i know python, perl etc [15:18] you can compile a 64 bit in a 32 bit pc with some flags set i suppose.. [15:18] i second Dell_'s question [15:19] dell_: you's better to read article names "how to become hacker" . the usage of perl,python,java,c ... are explained there [15:20] eric ramond or what is the author's name. Ofcource I have read it. But its a long time. I forgot everything [15:20] there are too many articles called "how to become hacker" for us to possibly know what you're talking about, Pooya [15:20] now i have an author, I can look it up! [15:20] He talks even about lisp, which never gets into my head [15:22] heres a link: http://catb.org/~esr/faqs/hacker-howto.html [15:22] to the article [15:22] pengper: http://www.catb.org/~esr/faqs/hacker-howto.html [15:22] pengper: it's famous article [15:22] i should probably know more than basic, c++, c# and a wee bit of java :L [15:22] I know little java. Is that enough to understand the author's intent, or should we know how to construct scripts using python, perl etc [15:22] thanks, Pooya. [15:26] can we just talk about Ubuntu here? [15:31] ... 28 minutes to go ... [15:32] yes [15:32] ubuntu-dev-tools build-essential devscripts is 39.9 MB [15:35] dell_, try installing with --no-install-recommends [15:36] why?. I am currently installing. Should I stop. [15:36] After that i will install xchat in ubuntu(virtualbox) and go fullscreen [15:37] dell_, no that's fine [15:37] I thought you mean to say that 39.9MB was too much [15:38] It's a bit big. Considering I will install freepats and xchat in the mean time [15:42] Currently I have started playing need for speed most wanted (2nd time). So I can not permanently switch to ubuntu right now. So I am being very cautious about installing by creating a partition. I know I will eventually switch as before [15:43] Anyways virtual box seems very nice. Previously I had to do quite a bit of work to start internet, but it has become so better [15:45] It seems lots of chat is going on in ubuntu-classroom-chat, should we guys start chatting there instead of here? === maco2 is now known as maco === mohan is now known as Guest45684 === 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: Getting Started with Ubuntu development - Instructors: dholbach [16:00] HELLO EVERYBODY! [16:01] Logs for this session will be available at http://irclogs.ubuntu.com/2011/07/11/%23ubuntu-classroom.html following the conclusion of the session. [16:01] Welcome to another fantastic and exciting Ubuntu Developer Week! [16:01] a few organisational things first [16:01] please make sure you also join #ubuntu-classroom-chat because that's the place where we chat and where you can ask questions while the sessions are going on [16:02] if you want to ask a question please prefix it with QUESTION, ie: [16:02] QUESTION: What's the name of dholbach's dog? [16:02] another thing: if you can't make it to a particular session: no problem, we'll upload logs and link to them at https://wiki.ubuntu.com/UbuntuDeveloperWeek [16:03] and another thing: if you work on a project that you would like to demo or present, the last session of UDW (Friday, last slot) is all about 5 minute lightning talks where you can present your project [16:03] talk to nigelb about it [16:04] that should be the organisational bits for now, but if you have any questions, either about the content of the sessions or the general event, please do ask [16:05] LibertyZero asked: What's the name of dholbach's dog? [16:06] LibertyZero, my dog is called Murphy :) [16:06] ok, questions queue cleared up, awesome! :) [16:06] let's get to the first session of UDW [16:07] my name is Daniel Holbach, I've been part of this community since the hoary release and work for Canonical for a few years now, taking care of the developer community [16:07] it's my privilege to do the "Introduction to Ubuntu Development" sessions today [16:07] in the first half I'll try to give a rough overview over Ubuntu Development, how it works, when we do what, who we interact with and which tools and infrastructure we use [16:08] in the second half, I'll explain how to set up your development environment and let's see how much time we have at the end - we might even toy around with a few packages at the end :) [16:08] Ubuntu is made up of thousands of different components, written in many different programming languages. Every component - be it a software library, a tool or a graphical application - is available as a source package. Source packages in most cases consist of two parts: the actual source code and metadata. Metadata includes the dependencies of the package, copyright and licensing information, and instructions on how to build the package [16:08] . Once this source package is compiled, the build process provides binary packages, which are the .deb files users can install. [16:09] This means that the actual .deb files are nothing we copy around or upload somewhere, we as developers always just deal with the source. [16:09] Every time a new version of an application is released, or when someone makes a change to the source code that goes into Ubuntu, the source package must be uploaded to the build machines to be compiled. [16:10] The resulting binary packages then are distributed to the archive and its mirrors in different countries. The URLs in your /etc/apt/sources.list file(s) point to an archive or mirror. [16:10] limivanb asked: what is the meaning of "deb" in .deb extension files? [16:11] limivanb, I think it stands for "Debian binary package" - because Debian is the distribution we inherit a lot of the technical foundation and source code from, more about our relationship to Debian later on [16:12] Every day CD images are built for a selection of different Ubuntu flavours. Ubuntu Desktop, Ubuntu Server, Kubuntu and others specify a list of required packages that get on the CD. These CD images are then used for installation tests and provide the feedback for further release planning. [16:12] Ubuntu’s development is very much dependent on the current stage of the release cycle. We release a new version of Ubuntu every six months, which is only possible because we have established strict freeze dates. [16:13] If you have a look at https://wiki.ubuntu.com/OneiricReleaseSchedule you can get a nice overview of the Oneiric cycle, which will have Ubuntu 11.10 as its end product. [16:13] With every freeze date that is reached developers are expected to make fewer, less intrusive changes. [16:14] The green and red colours on the page are meant as indicators for developers: green means "anything goes", red means "be super super careful". [16:15] It's no indicator of how well the current development release works on your computer. :-) [16:15] Feature Freeze is the first big freeze date after the first half of the cycle has passed. At this stage features must be largely implemented. [16:16] After that the user interface, then the documentation, the kernel, etc. are frozen, then the beta release is put out which receives a lot of testing. From the beta release onwards, only critical bugs get fixed and a release candidate release is made and if it does not contain any serious problems, it becomes the final release. [16:16] I think it's clear that most of the first half of the release is about feature development and bringing new versions of all kinds of software in and that the second half is more about ironing out bugs. [16:17] raju asked: if we make some small .deb files (for personal usage), is there any need to send them to ubuntu repo's to install them in my PC? [16:17] raju, It's not strictly required, but if you want others to be able to use your software, it might indeed be helpful to share them. [16:17] Also might you find people who are interested in helping you out fixing things, etc. [16:18] I realise that I zipped through a lot of stuff quickly now, are there any more questions about this? [16:19] And also let me know if I'm too quick or don't make sense. :-) [16:19] Ok, seems we're all fine... for now. [16:19] robinparriath asked: Is the feature freeze applicable for LTS too? or do features get added after release? [16:20] robinparriath, yes, it's applicable for LTS releases too [16:20] as a measure of caution we strictly try to keep changes that go into a released version of Ubuntu to the very minimum [16:21] security fixes and other important fixes naturally should be fixed after the release, but with a couple of million users it's a very risky thing to change too much in the code [16:22] I'll talk a bit more about that later on. I hope for now it suffices to say that 1) there's an Ubuntu release every 6 months and 2) there's the Ubuntu Backports project which tries to give updated versions of software to users of released versions of Ubuntu [16:22] ishan asked: What is LTS? [16:23] ishan, It's "Long term support" releases. [16:23] Instead of 18 months of support, it's 3 years on the desktop and 5 years on the server. [16:23] ben72 asked: are there some kind of checks for quality/malware of personal PPA:s? [16:24] ben72x, for getting packages into Ubuntu, yes, there is checks that make sure that we don't get software into the archive that is problematic [16:24] Undistributable software for example [16:24] for PPAs (Personal Package Archives) the restrictions are less drastic [16:24] ThomasB2k asked: How many releases back does this Ubuntu Backports project support, or is it just the standard 18 months? [16:25] ThomasB2k, as far as I know it supports the currently supported releases [16:25] https://launchpad.net/ubuntu lists the currently supported releases [16:25] limivanb asked: During development, how can ubuntu supports most of the drivers like video (ATI,GeForce),printers, etc? [16:26] limivanb, it's only possible because the developer of Ubuntu work closely with the Kernel and X.org upstream development communities and make sure that all the good fixes go into Ubuntu [16:27] also is there Certification efforts going on, where a lot of different machines are regularly tested if they work on a range of Ubuntu releases [16:27] subrahmanyam asked: Does ubuntu test and check the code that we developers have send.i.e,can we trust the code done by others??And if yes upto what extent === milos is now known as Guest95579 === Guest95579 is now known as Xaude === Xaude is now known as Xauder [16:28] subrahmanyam, I'll dive into that into more detail later on, but for now: extensive code review for old releases, new packages, packages that go into main plus code review of all changes that new contributors (who don't have upload access yet) bring in [16:28] I hope that suffices for now [16:28] Kvrmurthy asked: What system configuration is necessary to do most of development and testing stuff? You can name any specific laptop or desktop model [16:29] Kvrmurthy, there's no specific machine necessary - if it's fast enough for your daily work and you have a reasonable internet connection you should be all set [16:29] how to set up your development environment we'll cover a bit later on [16:29] valleyIIT asked: why unity 2D is provided if it cannot work properly on systems without graphics card [16:29] valleyIIT, at 18:00 UTC (after my session) you should ask the Desktop engineers about that [16:29] ben72 asked: should I avoid using personal PPA:s as much as possible. on different sites out there you can find a lot of links to different PPA:s. [16:30] ben72x, not necessarily - if there's one or two packages you want to try, I guess it's fine - if you have 156 different PPAs installed, which pull in all kinds of different libraries, I guess you might get into trouble [16:30] so no "avoid PPAs" from me :) [16:30] dell asked: I heard you use debian packages. So do you compile it in some old ubuntu computer or do you download it from debian [16:31] dell, I mentioned it earlier actually: we don't download .deb packages from anywhere, we always just use the source and build it on Launchpad build machines for Ubuntu === Vivek is now known as Guest28306 [16:31] but more about the interaction between Ubuntu and Debian later on [16:31] enes asked: Does the 6 months cycle make releases a bit a work of compulsion? Does the developers try to make changes for the cycle but unnecessary? [16:32] a hard question - as I see it, the 6 month release cycle forces us to work on features, but also make sure we get something out there, and something that works [16:32] awanti asked: After developing/building the OS how could you tell that its powerfull os, i mean how you test the OSing [16:33] I'm not sure how to answer the question - there's a lot of testing going on, a variety of testing and QA initiatives [16:33] it's certainly powerful enough for me, I never longed for anything else :) [16:33] limivanb asked: The ubuntu developers are using the drivers/API provided by the manufacturer of graphics adapter (for example), or printers, and other hardware? [16:34] limivanb, there'll be a kernel session later on this week which might be just the right place [16:34] most of the foundational libraries and the kernel define APIs and lots of hardware manufacturers work in those communities [16:34] so it's a bit of both, I guess :) [16:35] jykae asked: I have programs in PPA, how to get them to Ubuntu Software Center? [16:35] jykae, I'll answer that question in more detail later on [16:35] Kvrmurthy asked: On what platform Ubuntu was first developed? For that matter with what and on what the code for os in its initial stages is developed and compiled, run and tested?? [16:36] Kvrmurthy, Ubuntu is a derivative of Debian, so all the developers of Ubuntu in the warty (4.10) release had a Debian machine they were working on :) [16:36] maybe somebody in #ubuntu-classroom-chat can find a link of the very first announcement of the Ubuntu project [16:36] ... and I go back to the Introduction to Ubuntu Development? :) [16:37] zimio asked: If upstream fixes a bug, how important must it be so that it will be also fixed in the ubuntu package? [16:37] zimio, I briefly mentioned it earlier: it always depends where we are in the release cycle [16:37] in the beginning it's very easy to get it in, no matter how critical the bug fix is [16:38] towards the end of the release cycle we try to minimise the amount of new code going in [16:38] alright, end of the question queue - let's crack on :) [16:39] Let's talk a bit about planning the release. [16:39] Thousands of source packages, billions of lines of code, hundreds of contributors require a lot of communication and planning to maintain high standards of quality. At the beginning of each release cycle we have the Ubuntu Developer Summit where developers and contributors come together to plan the features of the next releases. [16:39] Every feature is discussed by its stakeholders and a specification is written that contains detailed information about its assumptions, implementation, the necessary changes in other places, how to test it and so on. [16:40] This is all done in an open and transparent fashion, so even if you can not attend the event in person, you can participate remotely and listen to a streamcast, chat with attendants and subscribe to changes of specifications, so you are always up to date. [16:40] Not every single change can be discussed in a meeting though, particularly because Ubuntu relies on changes that are done in other projects. That is why contributors to Ubuntu constantly stay in touch. [16:40] Most teams or projects use dedicated mailing lists to avoid too much unrelated noise. For more immediate coordination, developers and contributers use Internet Relay Chat (IRC). All discussions are open and public. [16:41] Another important tool regarding communication is bug reports. Whenever a defect is found in a package or piece of infrastructure, a bug report is filed in Launchpad (https://launchpad.net/). [16:41] All information is collected in that report and its importance, status and assignee updated when necessary. This makes it an effective tool to stay on top of bugs in a package or project and organise the workload. [16:42] Any questions about bugs, communication or planning the release? [16:43] Somebody asked earlier, where the first Ubuntu release was developed on. rww dug out this historical web page: http://web.archive.org/web/20040731032313/http://www.no-name-yet.com/ :) [16:43] thanks rww [16:43] Shock45 asked: Why do some bugs stay unfixed for such a long time after they've been confirmed? [16:44] Shock45, that's a good question [16:44] Sometimes it's because the problem is hard to fix, sometimes it's because there's too much work to be done and not enough hands on deck. [16:44] In a few minutes I'll talk a bit more about how we interact with other projects which should help with bringing each other up to date and fixing problems together. [16:45] Abhijit asked: What to do about the bugs I have reported so many days ago and since they are not critical they still have not fixed yet? [16:45] Abhijit, I hope the reply to Shock45's question answered this. [16:45] Ok, let's talk about Ubuntu and other projects. [16:45] Most of the software available through Ubuntu is not written by Ubuntu developers themselves. Most of it is written by developers of other Open Source projects and then integrated into Ubuntu. These projects are called “Upstreams”, because their source code flows into Ubuntu, where we “just” integrate it. [16:46] The relationship to Upstreams is critically important to Ubuntu. It is not just code that Ubuntu gets from Upstreams, but it is also that Upstreams get users, bug reports and patches from Ubuntu (and other distributions). [16:46] You might have guessed it already: Debian, which we derive from, is one of those Upstreams that is critically important to us. :) [16:46] Debian is the distribution that Ubuntu is based on and many of the design decisions regarding the packaging infrastructure are made there. Traditionally, Debian has always had dedicated maintainers for every single package or dedicated maintenance teams. [16:47] In Ubuntu there are teams that have an interest in a subset of packages too, and naturally every developer has a special area of expertise, but participation (and upload rights) generally is open to everyone who demonstrates ability and willingness. [16:47] ben72 asked: how can I wish for a specific software to be added to ubuntu so I don't have to add extra sources to install it? === fran_ is now known as Guest38065 [16:47] ben72x, https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages should answer the question in great detail, but I'll talk about specific parts of it later on as well. [16:48] dell asked: Does ubuntu team use code from other teams like fedora etc [16:48] dell, yes. In a lot of cases maintainers and engineers from various distributions know each other and work together in those upstream communities, which is why issues are often identified together (and depending on their release schedule) integrated where they fit in well. [16:49] coalitians asked: How does community prevent duplicate bug reports or dependent ones [16:49] coalitians, There will be a dedicated session about this later in the week. [16:49] We have some automatic tools that help figuring this out, but in some cases we have to manually find out duplicates and mark them as such in the Launchpad bug tracker. [16:50] limivanb asked: Why Ubuntu requires more memory compare to windows OS? [16:50] limivanb, no idea. I luckily haven't Windows in a very very very very long time. [16:50] ashams asked: is there any one tracks non-bitsize User experience bugs, and fix them? and hwhere to report *big* UE bugs? [16:50] ashams, great question - would you mind asking them when we have the Desktop team here at 18:00 UTC? :) [16:50] There are 10 minutes remaining in the current session. [16:50] naveen_ asked: How to know if its a new bug or the issue is happening only to me? [16:51] naveen, in some cases a google search or a search in launchpad.net will let you know, also if you try to report a bug in Launchpad it will try to find bugs that match your description [16:52] if in doubt: file the bug, somebody might mark it as duplicate if it really is, in the other case it will be super helpful to have your input [16:52] ok, let's crack on :) [16:52] Many of you asked how you can get something into Ubuntu. I'll answer this in more detail now: [16:52] Getting a change into Ubuntu as a new contributor is not as daunting as it seems and can be a very rewarding experience. It is not only about learning something new and exciting, but also about sharing the solution and solving a problem for millions of users out there. [16:53] Open Source Development happens in a distributed world with different goals and different areas of focus. For example there might be the case that a particular Upstream might be interested in working on a new big feature while Ubuntu, because of the tight release schedule, might be interested in shipping a solid version with just an additional bug fix. [16:53] That is why we make use of “Distributed Development”, where code is being worked on in various branches that are merged with each other after code reviews and sufficient discussion. [16:54] In some cases it would make sense to ship Ubuntu with the existing (old) version of the project, just add a specific bugfix, forward the patch to Upstream for their next release and ship that (if suitable) in the next Ubuntu release. It would be the best possible compromise and a situation where everybody wins. [16:54] http://people.canonical.com/~dholbach/packaging-guide/html/_images/cycle-branching.png might illustrate what I just talked about [16:55] To fix a bug in Ubuntu, you would first get the source code for the package, then work on the fix, document it so it is easy to understand for other developers and users, then build the package to test it. [16:55] After you have tested it, you can easily propose the change to be included in the current Ubuntu development release. A developer with upload rights will review it for you and then get it integrated into Ubuntu. [16:55] There are 5 minutes remaining in the current session. [16:55] Does that make sense so far? [16:56] When trying to find a solution it is usually a good idea to check with Upstream and see if the problem (or a possible solution) is known already and, if not, do your best to make the solution a concerted effort. [16:56] ben72 asked: does it matter if it's Ubuntu developed software or if the package is entirely from an upstream? === coalwater_ is now known as coalwater === limivanb is now known as ivanlim [16:57] ben72x, not all - the only thing that changes might be the number of people you interact with when making sure that your fix is accepted and integrated everywhere [16:57] sorry, I mean "not at all" [16:58] the pattern is the same: share your fix, make sure everybody benefits, keep the differences between Ubuntu and its upstreams as low as you can [16:58] ankurgel asked: In 'Distributed Development', will each and every participant in code will be updated with related bug report as it happens in all Upstreams? [16:59] ankurgel, the session about Bug Triage will answer this in a broader sense, but Launchpad was designed so you can keep track of the same problem in various projects and various bug trackers - it's super helpful when you are trying to figure out who has fixed the problem already or if there are open questions [16:59] ice asked: how to become a good ubuntu developer? [17:00] ice, enjoy "making things work again", be a good team player, don't be afraid of reading documentation and asking a few questions, get your bug fixes submitted for review, work with others to improve them :) [17:00] ice asked: can we view the seesions later? === 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: Getting Started with Ubuntu Development - Instructors: dholbach [17:00] ice, sure you can - just hang out in here or read the session logs on https://wiki.ubuntu.com/UbuntuDeveloperWeek later on [17:00] Logs for this session will be available at http://irclogs.ubuntu.com/2011/07/11/%23ubuntu-classroom.html following the conclusion of the session. [17:01] ok, I have a few closing remarks for the Introduction to Ubuntu development, then let's take a 2-3 minute break so everybody can relax a bit and get a new coffee, tea, or whatever else :) [17:02] When you work on a fix, additional steps might involve getting the change backported to an older, still supported version of Ubuntu and forwarding it to Upstream. [17:02] As I said earlier: The most important requirements for success in Ubuntu development are: having a knack for “making things work again,” not being afraid to read documentation and ask questions, being a team player and enjoying some detective work. :) [17:02] ^ This last point is important to me, that's why I keep saying it. :-) === Abhijit_ is now known as Abhijit [17:02] Good places to ask your questions are ubuntu-motu-mentors@lists.ubuntu.com and #ubuntu-motu on irc.freenode.net. You will easily find a lot of new friends and people with the same passion that you have: making the world a better place by making better Open Source software. [17:03] Let's take a quick break, I'll be back in 2-3 minutes. [17:06] Are there any questions from the first part of the session? [17:07] ben72 asked: is it enough for me to upload the fix to launchpad? will upstream monitor and pick it up by themselves? [17:07] ben72x, some will, but the majority won't because they have their own bug tracker [17:08] as I said earlier, we'll have a session about working with Debian later on this week - this one should definitely be interesting [17:08] grungekid_ asked: Does ubuntu provide any good coding tutorials for languages such as python etc? [17:08] there are a lot of great coding tutorials out there, if you google for them, some of them are packaged in Ubuntu already [17:09] the diveintopython package for example is a great example for learning Python [17:09] alright - let's get started with setting up our development environment [17:10] a few important notes: [17:10] - let us know in #ubuntu-classroom-chat if something doesn't work as expected, we'll do our best to help [17:11] - if your internet is slow or you don't have a current ubuntu release running right now: don't worry - you can always just follow the instructions when you read the log of this session later on and ask in #ubuntu-motu [17:11] It is advisable to do packaging work using the current development version of Ubuntu. Doing so will allow you to test changes in the same environment where those changes will actually be applied and used. [17:11] Don’t worry, though, the Ubuntu development release wiki page shows a variety of ways to safely use the development release: https://wiki.ubuntu.com/UsingDevelopmentReleases [17:12] As I said earlier: if you don't run oneiric now (you'd be very brave if you did), that's fine - just check out the wiki page above later on. The same steps are applicable there. :) [17:12] There are a number of tools that will make your life as an Ubuntu developer much easier. You will encounter these tools later in this guide. [17:12] To install most of the tools you will need, run this command: [17:12] sudo apt-get install gnupg pbuilder ubuntu-dev-tools bzr-builddeb apt-file [17:13] to get just the bare minimum, run [17:13] sudo apt-get install --no-install-recommends gnupg pbuilder ubuntu-dev-tools bzr-builddeb apt-file [17:13] (if you run oneiric or have Backports enabled, you can install the 'packaging-dev' package, which gives you a little bit more) [17:14] What we get is this: [17:14] - gnupg – GNU Privacy Guard contains tools you will need to create a cryptographic key with which you will sign files you want to upload to Launchpad. [17:14] - pbuilder – a tool to do a reproducible builds of a package in a clean and isolated environment. [17:14] - ubuntu-dev-tools (and devscripts, a direct dependency) – a collection of tools that make many packaging tasks easier. [17:14] - bzr-builddeb (and bzr, a dependency) – distributed version control tools that makes it easy for many developers to collaborate and work on the same code while keeping it trivial to merge each others work. [17:14] - apt-file provides an easy way to find the binary package that contains a given file. [17:15] - apt-cache (part of the apt package) provides even more information about packages on Ubuntu. [17:15] If what I said doesn't make a lot of sense yet, don't despair. We'll get there. [17:15] Let's dive into questions while we wait for the installations to end. [17:15] _Dreamer_ asked: Which languages do I need to know to get involved in Ubuntu development? [17:16] _Dreamer_, There are no prerequisites. A lot of the simple bugs can be fixed by reading the code, trying to understand it and fixing small bits here and there. Typos are good examples of this category. [17:17] A great thing about Ubuntu development is that you can work on all the packages you like and they are written in different languages and different styles - you learn a lot. [17:17] C, Python, Perl, C++ are good examples of what you will probably come across. [17:17] Abhijit asked: I want to develop my software for all ubuntu versions but I don not want the latest ubuntu version. I am happy with Lucicd. Will that cause any problem? [17:18] Abhijit, You can run Oneiric in a virtual machine - the link I gave above should help you with setting that up. [17:18] https://wiki.ubuntu.com/UsingDevelopmentReleases [17:18] mustafajnr asked: I'm running Lubuntu, which have been officially picked-up by Ubuntu as an official derivative as soon as the NEXT release, will it be sufficient? [17:18] mustafajnr, yes! :) [17:18] All Ubuntu derivatives share the same package base, so it's easy to be a developer, no matter if you run Kubuntu, Ubuntu, Ubuntu Server, Lubuntu, Edubuntu or whatever else [17:19] Kvrmurthy asked: Any good starting books? [17:19] Kvrmurthy, if it's about learning programming languages, I'd recommend googling and following recommended tutorials [17:19] if it's about Ubuntu development, I'd recommend https://wiki.ubuntu.com/MOTU/GettingStarted [17:19] dell asked: will the minimum file later have dependency issue [17:19] dell, no - you should be fine [17:20] coalwater asked: whats -no-install-recommends for ? [17:20] coalwater, Packages cann depend on other packages (hard sort-of-unbreakable (yeah, I know....) dependencies), softer dependencies, which are called recommends [17:20] and suggests, which are not considered by default [17:20] recommends are installed by default, but can be ignored or removed without problems [17:21] Kvrmurthy asked: Two things how we can run oneric in 11.04? and what is backport? [17:21] https://wiki.ubuntu.com/UsingDevelopmentReleases should help with running oneiric [17:21] backports is an additional repository where updated version of packages or new packages are added after the release got out [17:21] saimanoj60 asked: Which version of Python(2.7 or 3.0) is used in development? [17:22] saimanoj60, for oneiric it will be both (just not sure which of the Python3 versions it will be - 3.1???) [17:22] with the long term aim of moving to 3.x, but not for oneiric [17:22] mgarrido asked: what's the recommended development system? testdrive? a full install in another vm? [17:23] mgarrido, any option mentioned on https://wiki.ubuntu.com/UsingDevelopmentReleases should work - try doing a straw poll in #ubuntu-classroom-chat and see what others recommend :) [17:23] I use a virtual machine in kvm right now [17:23] ok, let's crack on - I hope the packages installed alright for you :) [17:24] Let's start of with your GPG key. [17:24] If you have one, you of course don't need to follow the instructions here. [17:24] GPG stands for GNU Privacy Guard and it implements the OpenPGP standard which allows you to sign and encrypt messages and files. This is useful for a number of purposes. In our case it is important that you can sign files with your key so they can be identified as something that you worked on. If you upload a source package to Launchpad, it will only accept the package if it can absolutely determine who uploaded the package. [17:24] To generate a new GPG key, run: [17:25] gpg --gen-key [17:25] GPG will first ask you which kind of key you want to generate. Choosing the default (RSA and DSA) is fine. Next it will ask you about the keysize. The default (currently 2048) is fine, but 4096 is more secure. [17:25] Afterward, 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. [17:25] 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. Adding a comment is not necessary. [17:25] Then you will have to set a passphrase. Choose a safe one. [17:26] Now GPG will create a key for you, which can take a little bit of time; it needs random bytes, so if you give the system some work to do it will be just fine. Move the cursor around! [17:26] Or just sit here in this session and enjoy the company of 284 others. :) [17:27] Once this is done (and it might take a while - that's fine), you will get a message similar to this one: [17:27] pub 4096R/43CDE61D 2010-12-06 [17:27] Key fingerprint = 5C28 0144 FB08 91C0 2CF3 37AC 6F0B F90F 43CD E61D [17:27] uid Daniel Holbach [17:27] sub 4096R/51FBE68C 2010-12-06 [17:27] In this case 43CDE61D is the key ID. [17:28] Once this is done, you need to upload the key to a gpg keyserver. Remind me of telling you how to do that later on. ;-) [17:28] acklee asked: whether to run Ubuntu using Wubi reliable for development? [17:28] acklee, I have never used it, but I guess that'd work [17:29] Semih asked: Can we use this key from another machine ? [17:29] Semih, yes, as far as I know, it should be fine to just copy it over (it's in ~/.gnupg) [17:29] dell asked: For frequent formatting, how can we save that file for later use. Can we make another gpg key [17:29] dell, it's better to re-use your existing one or you end up updating it in all kinds of places [17:30] ok, let us let gpg do its thing and move over to our SSH keys [17:30] SSH stands for Secure Shell, and it is a protocol that allows you to exchange data in a secure way over a network. It is common to use SSH to access and open a shell on another computer, and to use it to securely transfer files. For our purposes, we will mainly be using SSH to securely communicate with Launchpad. [17:30] To generate a SSH key, enter: [17:30] ssh-keygen -t rsa [17:30] (you can use another terminal for doing this) === paulproteus_ is now known as paulproteus [17:31] The default file name usually makes sense, so you can just leave it as it is. For security purposes, it is highly recommended that you use a passphrase. [17:31] RWINZ asked: hello everybody, can someone tell me how to install my cdma modem on my ubuntu natty? [17:31] RWINZ, I would suggest you join #ubuntu and ask the question there - we're currently focused on "Introduction to Ubuntu Development" [17:32] with GPG and SSH keys done, let's have a look at our build environment [17:32] In this example, we'll make use pbuilder - there's other alternatives as well [17:32] pbuilder allows you to build packages locally on your machine. It serves a couple of purposes: [17:32] - The build will be done in a minimal and clean environment. This helps you make sure your builds succeed in a reproducible way, but without modifying your local system [17:33] - There is no need to install all necessary build dependencies locally [17:33] - You can set up multiple instances for various Ubuntu and Debian releases [17:33] Setting pbuilder up is very easy. Edit ~/.pbuilderrc with your favourite editor and add the following line to it: [17:33] COMPONENTS="main universe multiverse restricted" [17:33] Save it. [17:33] This will ensure that build dependencies are satisfied using all Ubuntu components. [17:34] Then run: [17:34] pbuilder-dist create [17:34] where is for example natty, maverick, lucid or in the case of Debian maybe sid. This will take a while as it will download all the necessary packages for a “minimal installation”. These will be cached though. [17:34] in our case, let's try this: [17:34] pbuilder-dist natty create [17:35] The reason I don't suggest oneiric is https://launchpad.net/bugs/807974 - it's currently not possible. [17:35] If you want a notification of when it works again, please subscribe to the bug report and try again when the issue is fixed. [17:35] As mentioned above: setting up pbuilder will take quite a while, particularly if you're on a slow internet connection. The good news is: packages will be cached. :) [17:36] Cuzzie asked: Is the ~/.pbuilderrc file already there after we installed pbuilder, or do we have to make one? [17:36] Cuzzie, no, if you don't have it, just create it [17:36] alucardni asked: it's possible to have a Debian pbuilder environment in ubuntu? [17:37] alucardni, yes - "pbuilder-dist sid create" would create a pbuilder instance for Debian unstable [17:37] ankurgel asked: all this has to be done on latest Ubuntu release or will previous version work fine? [17:37] ankurgel, previous releases should work fine [17:38] you should be able to go back and use the log to set up all of this in an updated virtual machine later on if you like [17:38] let's talk a bit about Launchpad [17:39] With a basic local configuration in place, your next step will be to configure your system to work with Launchpad. Now we will focus on the following topics: [17:39] - What Launchpad is, and creating a Launchpad account [17:39] - Uploading your GPG and SSH keys to Launchpad [17:39] - Configuring Bazaar to work with Launchpad [17:39] - Configuring Bash to work with Bazaar [17:39] Launchpad is the central piece of infrastructure we use in Ubuntu. It not only stores our packages and our code, but also things like translations, bug reports, and information about the people who work on Ubuntu and their team memberships. [17:39] You will also use Launchpad to publish your proposed fixes, and get other Ubuntu developers to review and sponsor them. [17:40] You will need to register with Launchpad and provide a minimal amount of information. This will allow you to download and upload code, submit bug reports, and more. [17:40] If you don’t already have a Launchpad account, you can easily create one: https://launchpad.net/+login [17:40] If you have a Launchpad account but cannot remember your Launchpad id, you can find this out by going to https://launchpad.net/people/+me and looking for the part after the ~ in the URL. [17:40] Launchpad’s registration process will ask you to choose a display name. It is encouraged for you to use your real name here so that your Ubuntu developer colleagues will be able to get to know you better. [17:41] When you register a new account, Launchpad will send you an email with a link you need to open in your browser in order to verify your email address. If you don’t receive it, check in your spam folder. [17:41] The new account help page on Launchpad has more information about the process and additional settings you can change: https://help.launchpad.net/YourAccount/NewAccount [17:41] ben72 asked: you now assume we're on oneiric right? [17:42] ben72x, no - a supported ubuntu release should be fine - if you read the log of this session later on again, you can easily either copy your settings to a virtual machine or repeat the steps [17:42] ankurgel asked: ~/.pbuilderr doesn't exist. Should I create a new file and save it with that mentioned line in it? [17:42] ankurgel, yes, create a new ~/.pbuilderrc and save it [17:43] also if you should run out of time following all the instructions: having a look at the log later on should help you find your way afterwards (or ask in #ubuntu-motu :)) [17:44] Open https://launchpad.net/people/+me/+editsshkeys in a web browser, also open ~/.ssh/id_rsa.pub in a text editor. This is the public part of your SSH key, so it is safe to share it with Launchpad. Copy the contents of the file and paste them into the text box on the web page that says “Add an SSH key”. Now click “Import Public Key”. [17:44] For more information on this process, visit https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair [17:45] dell asked: It asked me to create system wide cache directory. I started to download that. [17:45] dell, I'm not quite sure which part of the instructions you are referring to. Can somebody in #ubuntu-classroom-chat answer this? [17:45] coalwater asked: is there a difference between ubuntu devs and motu devs? or are they the same ? [17:46] coalwater, they all are Ubuntu developers - MOTU is the group of Ubuntu Developers that has upload rights for Universe and Multiverse only [17:46] also does the MOTU team do a lot of training of new developers - it's great to hang out with the team - they're a friendly bunch === uxistin is now known as bilfixion [17:47] but generally it doesn't matter which upload rights you have if you care about Ubuntu and help improving it - it just makes getting changes into Ubuntu easier because you proved your abilities before and don't have to go through the review process every single time [17:47] kermit6667485 asked: How much space will pbuilder take to create a new development environment? Same as a fresh Ubuntu install? How can we delete this environment later on in case we want to move to a virtual machine? [17:48] kermit6667485, much less than a default install, [17:48] daniel@miyazaki:~$ ls -la pbuilder/natty-base.tgz [17:48] -rw-r--r-- 1 root root 100385624 2011-06-09 12:17 pbuilder/natty-base.tgz [17:48] daniel@miyazaki:~$ [17:48] You can just remove the ~/pbuilder directory later on if you decide you don't like it/need it [17:48] We have 12 minutes left and I fear we might run out of time - let's talk about Bazaar a bit [17:49] 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. [17:49] To tell Bazaar who you are, simply run: [17:49] bzr whoami "Bob Dobbs " [17:49] bzr launchpad-login subgenius [17:49] whoami will tell Bazaar which name and email address it should use for your commit messages. With launchpad-login you set your Launchpad ID. This way code that you publish in Launchpad will be associated with you. [17:49] Note: If you can not remember the ID, go to https://launchpad.net/people/+me and see where it redirects you. The part after the “~” in the URL is your Launchpad ID.) [17:50] We need to follow similar steps to tell the Debian/Ubuntu packaging tools about who we are. [17:50] It's quite easy though. Simply open your ~/.bashrc in a text editor and add something like this to the bottom of it: [17:50] export DEBFULLNAME="Bob Dobbs" [17:50] export DEBEMAIL="subgenius@example.com" [17:50] Now save the file and either restart your terminal or run: [17:50] source ~/.bashrc [17:50] There are 10 minutes remaining in the current session. [17:51] (If you do not use the default shell, which is bash, please edit the configuration file for that shell accordingly.) [17:51] I hope that by now your GPG key was successfully generated. [17:51] You should see a message like this: [17:52] pub 4096R/43CDE61D 2010-12-06 [17:52] Key fingerprint = 5C28 0144 FB08 91C0 2CF3 37AC 6F0B F90F 43CD E61D [17:52] uid Daniel Holbach [17:52] sub 4096R/51FBE68C 2010-12-06 [17:52] In the case above 43CDE61D is the key ID. [17:52] If you run this command, the key should be uploaded to a keyserver [17:52] gpg --send-keys [17:53] This will send your public key (this is safe!) to one keyserver, but a network of keyservers will automatically sync the key between themselves. Once this syncing is complete, your signed public key will be ready to verify your your contributions around the world. [17:53] ankurgel asked: And then use environment variables like: bzr whoami $DEBFULLNAme <$DEBMAIL> each time? [17:53] ankurgel, no, the tools will assume they know you and auto-fill in that data :) [17:53] so no need for variables or spelling your name all the time :) [17:54] https://help.launchpad.net/YourAccount/ImportingYourPGPKey will tell you how to upload your GPG key to Launchpad [17:54] and with that you should be fully set up and ready to go! [17:54] As I said earlier https://wiki.ubuntu.com/UbuntuDeveloperWeek will have links to logs by the end of each day, so make you visit that page again - best bookmark it :) [17:55] there's a variety of things we talked about and there's a variety of sessions still coming up that will give you much broader insight into how things work. [17:55] ankurgel asked: But, bzr command will be needed to commit each time. Willn't it? That's why thought to use env. var. with command. [17:55] There are 5 minutes remaining in the current session. [17:56] ankurgel, after you've run "bzr whoami" it will store the information about you in its own config files and you won't have to type it in again [17:56] commit messages will automatically have your name and email associated with them [17:57] for further reading I'd like to recommend https://wiki.ubuntu.com/MOTU/GettingStarted [17:57] also http://people.canonical.com/~dholbach/packaging-guide/html/ might look very much familiar after you sat through the two first sessions [17:57] To ask questions, check out #ubuntu-motu and https://lists.ubuntu.com/mailman/listinfo/ubuntu-motu-mentors [17:58] and if you use any social media, check out (and follow if you like) http://twitter.com/ubuntudev http://identi.ca/ubuntudev http://facebook.com/ubuntudev to find out more about what's going on next [17:58] with that, I'd like to hand over to Sébastien "seb128" Bacher and the Desktop team, who will answer all the questions you might have! [17:59] Thanks a lot everybody - you ROCK! === 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: Ubuntu Desktop Q&A - Instructors: seb128 [18:01] Logs for this session will be available at http://irclogs.ubuntu.com/2011/07/11/%23ubuntu-classroom.html following the conclusion of the session. [18:01] hey [18:01] thanks dholbach [18:01] welcome to the desktop team Q&A [18:02] ok, ready [18:02] how is everybody today? [18:02] I hope you had fun with Daniel [18:02] let's see what sort of questions you have for the desktop team ;-) [18:03] ok, let's get started, I see a few desktop contributors and members in the room, I will answer questions but might dispatch a few ones for others in the desktop team if appropriate [18:04] ben72 asked: will gnome3 be easier to install in the coming ubuntu releases? [18:04] yes! [18:04] GNOME released after the natty freeze and we were busy with unity [18:05] so rather than doing a suboptimal job at the best to get GNOME in natty we rather stayed on 2.32 and delayed to this cycle [18:05] we have GNOME3 proper in oneiric already and are working on GNOME 3.1 [18:06] the fact that we moved to unity by default also means we reduced our number of GNOME patches [18:06] so if you start a GNOME classic session (gnome-panel) or a gnome-shell session in oneiric you should have a pretty much upstream complete experience [18:06] GNOME classic and GNOME shell will not be on the CD but an apt-get install away and well maintained and supported [18:07] I hope we will keep GNOME users happy since we still love GNOME ;-) [18:07] [18:07] dell asked: Why is default theme on ubuntu always bad as compared to windows or mac [18:07] is it? [18:07] I've no strong opinion on that, I like the light variant of the default theme [18:08] but you should comment on the ayatana list if you have specific issues or suggestions [18:08] or open bugs on launchpad against the theme if you find bugs in it [18:08] [18:08] NMinker asked: With Oneiric, how was the transition to Linux 3.0? Was it any different from past kernel upgrades (2.6.37, 2.6.38, etc.)? [18:09] no a very desktopish question so I'm not sure but from I know it's pretty similar to any kernel update [18:09] [18:09] auToeXeC asked: Will Ubuntu be officially supported with GNOME? [18:09] I'm not sure to understand the question [18:09] GNOME doesn't support officially or not distributions that I know about [18:10] you should maybe reformulate the question? [18:10] [18:10] rww asked: Does GNOME Shell in Oneiric use notify-osd, indicator applets, etc., or does it use the upstream alternatives to those? [18:10] GNOME shell is oneiric should be a stock upstream experience (i.e no notify-osd, no indicators) [18:10] if you find cases where it's not please open bugs [18:10] [18:11] dell asked: Ubuntu 11.04 did not install with default setting in my old 32-bit computer, but previous versions did. So is it a mith that ubuntu supports old hardware [18:11] how did not install? it's hard to say without details on your configuration, but 11.04 should not be limited over previous versions [18:11] it could be a bug [18:11] [18:12] grungekid_ asked: There is a post in the ubuntu forum currently about Ubuntu frying Macbook cpu's due to OSX managing the voltage on the processor itself and Linux not doing a good enough job. Is there any truth behind this? [18:12] good question, not really desktopish though and to be honest I've no clue, I down own any mac computer and didn't read anything about those issues [18:12] [18:12] ashams asked: Where to report *non-bitsize* User Experience bugs? Is there any team or person who collect&fix them? [18:13] on the component they affect [18:13] or use the ayatana mailing list if you want to discuss the issues with dx or design [18:13] [18:13] coalitians asked: How are the feedbacks you are getting for implementing Unity? [18:13] good question [18:14] we have quite a range of reactions to unity [18:14] some users don't like change and so don't like it [18:14] some users are used to tweak their configuration in precise ways and they don't like it much either [18:15] some users first didn't like it because it was different but gave it a chance and after a while found themself very happy with it [18:15] new users seems to be the ones most positive about it [18:15] they like the modern look and they like how easy it is to use [18:16] we got from the feedback though that we still need to improve, the current version still has stability issues and rough edges [18:16] the product is still new and dx and other teams are working hard to improve it, let's see how it goes this cycle and for the lts [18:17] but we are quite confident that if manage to make it solid and polished a bit users feedback will keep being good [18:17] [18:17] dell asked: There is a post that windows 7 is less power consuming that ubuntu. Is it true ubuntu is more power hungry due to desktop [18:18] it's hard to say, power usage is depending of what is running, of your hardware, of the drivers for your hardware, etc [18:18] not really a desktopish question either btw [18:18] I've no doubt some drivers could do better and our desktop could do better as well on some components [18:19] but what I read around on the internet didn't show ubuntu being that power hungry either [18:19] would be a better question for the kernel team though ;-) [18:19] [18:19] mhall119 asked: Are there any plans to expand on the social integration in Oneiric? [18:20] expand how? [18:20] gwibber is being rewritten and the new version should land in oneiric soon [18:21] it will be lighter and better but I don't know of plan to add support for things which were not available before [18:21] better to check with kenvandine though [18:21] [18:21] saimanoj60 asked: why is the laptop edition and desktop editon merged? [18:22] because maintaining 2 editions has a cost [18:22] it requires extra images to maintain, build, test, host, mirror, etc [18:22] the differences between the two edition were small as well [18:23] unity works fine on laptop and desktop configs so we decided we better spend the resources on making one solid product rather than dividing efforts [18:23] [18:23] auToeXeC asked: Earlier Ubuntu versions were packed with ubuntu. Now, the 11.04 isn't available with GNOME. I'm asking if further versions will have GNOME like Kubuntu is with KDE? [18:23] were packed with GNOME you mean? [18:24] there is no plan right now from the current team to do a GNOMEbuntu flavor of Ubuntu [18:24] but that's mainly because it's easy to install gnome-shell over Ubuntu and because the current team is busy [18:24] that would be a nice project if there is a motivated community wanting to maintain it [18:25] if you want to work on that feel free to join on #ubuntu-desktop we can help you to start on it and maintain it [18:25] [18:25] Godji asked: Do you plan to make Unity highly customizable (at least as much as GNOME 2.x is, and ideally as much as the KDE 4.x desktop)? If yes, is it a high priority task? [18:25] no [18:26] customization is nice but it makes the code harder to maintain, increase the number of bug, etc [18:26] we decided to focus on doing things one way and doing them well [18:27] but GNOME classic, xfce, KDE, etc are still available and maintained for those who like other experiences [18:27] or like tweaking [18:27] or have a difference vision [18:27] [18:27] dell asked: Can't ubuntu provide vlc by default. And the stuffs like mp3 can be later updated when user first starts it. Default media player on ubuntu is not good. [18:27] what is no good with totem? [18:28] we didn't look at vlc recently, it's a great product but I think the way they distribute codecs make it non pratical to ship it by default [18:28] there are lot of codecs that are patented and which can't be legally distributed === daamageboyPad is now known as damageboyPad [18:29] gstreamer does ship codecs in different sources to address those issues and have legal solutions for i.e mp3 playing which you can buy [18:29] it's not likely we could switch to vlc [18:29] without speaking about CD space or ui consideration... [18:29] [18:29] kamil_p asked: are you working at making indicators work in gnome-shell? [18:30] we as the ubuntu desktop team are not but there is a bug on bugzilla.gnome.org with a patch for that I think [18:30] so it should be possible to get code to load them in gnome-shell in some way [18:30] [18:30] coalitians asked: How are the Application integration with Global Menu Bar happening? [18:30] you mean? [18:30] it should happen automatically for gtk and qt applications [18:31] the appmenu-gtk and appmenu-qt code strip menubars from applications and export those for you without having to do anything [18:31] there is still some buggy case, if you find one open a bug against libdbusmenu [18:32] (that's for gtk and qt, other toolkit are not supported though firefox and lo got code exporting their menu, but that's not automatic for those) [18:32] [18:32] dell asked: One issue I found was ubuntu started fan under 8 minutes and that on windows 7 was i think more than 15 minutes. This way the computer gets more heated and more power consumption [18:32] open a bug with the detail of what is running, your hardware configuration, etc I guess [18:33] it could be lot of reason, something using the cpu in the session, suboptimal drivers, ... [18:33] not really a desktop question though [18:33] [18:33] Shock asked: Why was compiz 0.9.x released with so many regressions compared to 0.8.x? Why not stick with 0.8.x until 0.9.x became mature enough? [18:33] the situation was a bit unfortunate but there was no obvious or easy choice [18:34] compiz 0.8 was written in C [18:34] compiz 0.9 is in cpp [18:34] so the choice was to start writing unity in C and on a non maintained codebase [18:35] which would have probably mean the new codebase would have got testing and that unity would have been to be rewriten or refactored a lot later on [18:35] or to move forward, skip on the new codebase, write code ready for what is maintained and is the way to go and fix the issues on the way [18:36] in practice that's lot of work and the team has limited resources so they didn't manage to get it all sorted in one cycle [18:36] we do believe that's what put us in the best position to have a stable codebase we can maintain soon [18:36] especially before the next LTS [18:36] the tradeoff is a bit less stability during one cycle or two out of the LTS... [18:36] [18:37] NMinker asked: Not a "desktopish" question, why was a Netbook edition available for Natty, even though it was discontinued? [18:37] was there? or was it only an armel version? [18:37] the armel team kept using the netbook edition because armel has poor 3d support and unity2d was not there yet [18:37] [18:38] saimanoj60 asked: Relating to my previous question - merging desktop and laptop editions-- Then how are the differences like touchpad and webcam features are provided? If they are included, are not they burden for desktop users? [18:38] I'm not sure to understand what differences you talk about [18:38] most laptops nowadays have a touchapd and a webcam built in [18:39] most desktop users have a webcam === txwikinger2 is now known as txwikinger [18:39] the options for devices which are not available are just not showed [18:39] the same way as printer drivers for example are available, it doesn't mean you have to use a printer, but if you want to that makes it easier [18:39] [18:39] amorphous1 asked: How can we change the font size to a custom one in Oneiric? [18:39] use dconf-editor [18:40] the ui options are in org.gnome.desktop.interface [18:40] that's not really user friendly though [18:40] you can also install gnome-tweak-tools [18:40] or ubuntu-tweak-tools I guess (need to look what they provide with it) [18:41] we still plan to look at the options GNOME3 dropped from its ui and figure what to do for them in oneiric [18:41] so maybe themes and some other will come back in some way in the UI [18:41] [18:41] saimanoj60 asked: If the codecs are patented, I dont understand how the commercial operating system(windows) is able to distribute those codecs. [18:41] they pay a patent fee by system [18:42] it's easy for them to pay let's say $1 by windows copy to provide the codecs since they charge you for the OS [18:42] Ubuntu is free, it's hard to pay to include things to something you give for free [18:42] [18:43] dell asked: Totem does not handle video well like vlc, It always displays the visualization window and stuffs like that. VLC is by the way best on all platform. So since, it is free and open source, why not go for the best [18:43] if you have specific bugs with totem please open those [18:43] I've no doubt vlc and mplayer are great player and probably do better than gstreamer and totem in several cases [18:43] but as said before they would not be easy to distribute [18:44] but feel free to start a discussion on the ubuntu-desktop mailing list about it [18:44] that's probably the best way to have a discussion and to summarize reasons [18:44] we might figure after discussion that we could change in one of the next cycles who knows ;-) [18:44] [18:44] LibertyZero asked: If you plan to stick with totem, are there any plans to redesign the interface? It's currently not only ugly but also do the large controls and the statusbar waste quite a lot of screen space unnecessarily. [18:45] not that I know about [18:45] we are busy enough working on the desktop, we don't really have resources to redesign applications [18:45] that's probably something you should raise on upstream lists on bring up to the totem writers [18:46] we might be able to do some tweaks to address some obvious issues, so if you have some of those please open bugs or mail the ayatana list for discussion [18:46] but we will not like redesign it [18:46] [18:46] MedaRock asked: how is the feedback for unity 2d, and what i need to know to help? [18:46] hum, good question [18:47] so didrocks who is mostly maintain it is not there this week but he would be the best placed to answer [18:47] the feedback I read was good so far [18:47] they have a small team and could use some help for sure [18:47] so maybe ask on #ayatana during european office hours [18:47] or checking launchpad for bitesized bugs [18:48] or open bugs that you feel like you could help on, I'm sure they would appreciate contributions [18:48] [18:48] saimanoj60 asked: If the codecs are to be payed for use, then how are we able to download for free? Is it not legal? [18:48] downloading things for personal use and providing things in a "product" are different things [18:49] or said differently nobody is going to sue you for installing a mp3 player without rights [18:49] but Canonical could be a better target to sue to get money [18:49] [18:50] Cuzzie asked: Is there any difference between mplayer and totem? [18:50] is there anything common between mplayer and totem? ;-) [18:50] mplayer uses ffmpeg, totem gstreamer [18:50] mplayer has different interfaces including command lines ones, totem is a GNOME application [18:50] There are 10 minutes remaining in the current session. [18:51] [18:51] mhall119 asked: At UDS, Mark said that there was going to be a big focus to make webapps first-class citizens on the desktop, how is that going to be accomplished? [18:52] that's a good question and I've not really seen anything coming out of that yet and I'm probably not the best person to ask, maybe watch the ayatana list if they discuss the topic there [18:52] but I guess desktop integration will come with things like making webapps showing as applications on the unity launcher [18:52] (there is a bug and work being done for that with chromium I think) [18:52] i.e a webapp running in a chromium tab would be listed as any application in the launcher [18:53] I guess they will figure other smart things to do over time as well ;-) [18:53] [18:53] datastream_ asked: sometimes when i have a long folder name on my desktop, and its close to another folder they overlap. anything i can do to fix this besides moving the folders? [18:53] not that I know about, seems like an old known bug [18:53] [18:53] oscar-colombia asked: is onerci coming in gnome3 - gnome-shell desktop enviroments? [18:54] oneiric Ubuntu will have unity-3d and unity-2d on the CD [18:54] but gnome-shell and gnome-classic will still being available, supported, and one apt-get install away [18:54] there seems to be some community interest also around doing a GNOMEubuntu flavor, i.e a CD with GNOME by default, let's see if that happen [18:55] but if not GNOME will still be maintained as a first class citizen and very easy to install and run [18:55] [18:55] dell asked: When will ubuntu go for gnome 3 [18:55] Oneiric is already using GNOME3 [18:55] [18:55] There are 5 minutes remaining in the current session. [18:55] acklee asked: in terms of the Ubuntu desktop interface, whether other distros such as Mint also contribute? [18:56] not that I know, they work on the interface of their distribution but i've not seen them engage a lot with us about improving the stock Ubuntu interfaces [18:56] [18:56] NMinker asked: Will GNOME still be there if you upgrade from Natty to Oneiric? [18:57] yes, there is no reason it should go away ;-) [18:57] [18:57] ok, 3 minutes left and the queue is empty [18:57] if you have a few remaining question now is the time to ask ;-) [18:58] I'm referring to GNOME classic, obviously [18:58] reply to that from -chat [18:58] GNOME will have a GNOME Shell session and a GNOME classic [18:59] GNOME classic will be similar to GNOME2, i.e gnome-panel etc [18:59] with some redesign coming from GNOME [18:59] [18:59] robinparriath asked: there were rumours of android apps on ubuntu. True or false [18:59] no idea [18:59] I've no read or seen anything about that ;-) [18:59] [18:59] john_g asked: Is libdbusmenu going through much change to use the new interfaces? [19:00] what new interfaces? [19:00] there is some improvements planned for this cycle as every cycle I think but better to check with dx team for the specific [19:00] they got us 2 abi breaks already :p === 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: Packaging Mono for the greater good - Instructors: directhex [19:01] Logs for this session will be available at http://irclogs.ubuntu.com/2011/07/11/%23ubuntu-classroom.html following the conclusion of the session. [19:01] righty then. thanks to seb128 for his session there. [19:01] I'd like to apologise in advance if I appear to become unresponsive during this, as if my internet connection has dropped. it'll be because my internet connection has dropped. yay, adsl, etc. [19:02] my intention is to spend a few minutes first discussing mono and how it relates to ubuntu, in packaging terms. then ill go through a couple of example packages (sparkleshare, docky and keepass2 are my example packages, try to ensure you have the source packages and build-deps available if you want to follow along) [19:02] then end with a Q&A session [19:03] so. first things first. mono's a framework for developing apps in the same format as microsoft.net. same bytecode format, same class libraries, etc. this is possible because the bytecode and basic class libraries are an ISO standard that anyone can read through [19:04] mono packages have been available in ubuntu since forever. mono apps have been in the default ubuntu install for about five years - tomboy pretty much every time, and varyingly since then f-spot, gbrainy, and banshee. [19:05] there are about 120 packages in ubuntu which use mono in one form or another - about 40-50 applications, written in c#, and the rest are usually libraries (or C-based libraries offering a Mono interface, such as libubuntuone) [19:06] i'm one of the mono packagers in debian, and i also carry some responsibility for it in ubuntu - we try as far as humanely possible to do mono-related work in debian, then let that work trickle down into ubuntu, minimizing duplicated wotk [19:06] i also wrote the first version of the banshee plugin to access the ubuntu one music store (this has since been adopted by canonical developers) [19:07] why mono? because c# is a very easy language to develop with, whilst still reasonably performant - and it's also pretty lightweight compared to some of the competition. this makes it well positioned to offer an alternative to C, Python, Java, etc [19:08] and you'd be hard pressed to tell the difference between a Mono app written in C#, and a Python or C app, if nobody told you - when an app uses the GTK# framework for designing a GUI, it feels entirely "native", despite the app technically being a .exe file [19:09] note that mono (and .net) .exe files aren't windows (or wine) .exe files. microsoft just weren't bright enough to use a different file type when they wrote the standard. go figure. [19:09] hopefully people have already downloaded some or all of the example apps i mentioned on the UDW wiki - three apps you may or may not have heard off called docky, sparkleshare, and keepass2 [19:10] i think sparkleshare is in oneiric but not natty - don't worry about that one if you're not in oneiric [19:10] if you don't have them, remember you use "apt-get source packagename" to download and extract a source package to the current folder [19:11] and "apt-get build-dep packagename" to install the packages you need in order to compile that package [19:11] if you don't want to use a local install, let me grab a web link for the source packages [19:12] http://anonscm.debian.org/gitweb/?p=pkg-cli-apps/packages/sparkleshare.git;a=tree [19:12] http://anonscm.debian.org/gitweb/?p=pkg-cli-apps/packages/docky.git;a=tree [19:12] http://anonscm.debian.org/gitweb/?p=pkg-cli-apps/packages/keepass2.git;a=tree [19:13] there's the browsable sources for the three packages we're using, if you prefer a web browser [19:14] so, let's start things off by looking at docky. docky is an app providing a macos-style dock, for launching applications. it's a c# app, which began life as part of the gnome-do launcher, before being spun off as an independent project [19:14] as with any package, the structure is the same. the upstream source tarball, with an added "debian/" folder containing all the packaging metadata. take a look in debian/ [19:15] there are all the simple basic files in here. "compat" specifies the compatibility version which the debhelper package should use for package building commands (we use debhelper 7 extensively in the mono team) [19:16] watch is used for automatically scanning remote servers for package updates. the package maintainer gets an email when the watch file reports on new things. the "uscan" command uses the watch file - e.g. "uscan --report-status" tells me that "Newest version on remote site is 2.1.3, local version is 2.1.2" [19:16] so i guess i've got some work to do. or delegate to someone else, anyway. [19:17] copyright is what it sounds like. the changelog is what it sounds like, requiring standard debian packaging format changelogs. the dch command lets you edit changelogs (e.g. dch -i adds a new changelog entry) [19:18] the source/ folder contains a single file, format, which specifies the debian source format used by the package. we use "3.0 (quilt)" here, which automatically handles the content of the patches/ folder [19:19] and on a related note, patches/ contains changes to the upstream source which are required for the package to work (or make it work better). we have one minor fix, which ricotz probably rolled into 2.1.3, but we don't have her in 2.1.2 [19:19] this leaves the two most important files in a debian source package: control and rules. [19:20] control contains the package descriptions, including the dependencies and build-dependencies of the package. docky has quite a lot of build-dependeicies, as it uses a lot of gnome technologies. [19:21] if you look at the package dependencies section, around line 36, you'll see we only have on real dependency, on librsvg2-common [19:21] the rest are "substvars", i.e. when the package is compiled, they will be filled in with real values [19:22] so ${cli:Depends} is filled in by the dh_clideps command, which is executed during package compilation [19:23] which brings me to the final file, rules. debian/rules is a Makefile, which is called by the build commands run on the build servers, in order to build a package [19:24] we use the debhelper 7 format, which allows us to skip the "boring" parts of the file (these boring parts are automatically filled in by the "dh $@" lines at the bottom [19:24] we only do three things here which are any different from a C or C++ app using normal ./confgure and make [19:25] first, we have a line "include /usr/share/cli-common/cli.make" - this tells debhelper to read in the file /usr/share/cli-common/cli.make, which tells it to make changes to the normal sequence of events, and insert some extra ones, such as dh_clideps which builds dependencies on Mono libraries [19:26] look at /usr/share/perl5/Debian/Debhelper/Sequence/cli.pm to see how that happens [19:27] second, we override the "dh_auto_configure" command, and substitute our own version. our version adds an extra variable, redefining MCS. in this package, MCS is the C# compiler program's path. we override this, so we can easily change the c# compiler used (mono-csc is a symbolic link to the distro default compiler) [19:28] that way, if ./configure is searching for "gmcs" or "csc", it accepts our new truth and uses mono-csc instead. [19:29] third, we override dh_makeclilibs, the command which mono library packages use to say "i am a library, packages using me need to do XYZ", and tell it to exclude the usr/lib/docky folder. this is because docky isn't a library, and we don't want its own internal files being treated as distriwide libraries. [19:29] so, that's the whole package. if you run dpkg-buildpackage in there, it'll make a fresh .deb [19:30] if you have the sparkleshare source package, you'll see it looks exactly like docky - simple debhelper 7 format, using ${cli:Depends} for dependencies, etc. simple mono apps. [19:30] now, the last example is a complicated example. keepass2. [19:31] this is originally a Windows app - but its developers wrote it in such a way that it also works on Mac OS X and on Linux, via Mono. bug because it's a Windows app, its developers don't have linuxy things like ./confgure and make - instead, it uses Visual Studio.NET project files, and needs some manual cleaning up [19:32] if you look in the debian/patches folder for keepass2, you'll see a LOT of patches, doing various things - little tweaks here and there to make it behave better on Ubuntu [19:33] the debian/rules file is also much more complicated, as many steps usually handled by an automake makefile are done manually - e.g. putting an executable in /usr/bin or icons in the right places [19:33] rather than "make", we use "xbuild", which is a command to compile Visual Studio.NET project and solution files [19:34] we have a "install" file in debian/, which lists the files produced by the compilation, and where they should be installed to inside the package [19:35] since there's no "make install" to do it for us, it's done semi-manually via these files [19:36] the end result is a package whose contents are laid out in a "native" way - however, because keepass2 uses the System.Windows.Forms GUI toolkit rather than GTK#, it looks a bit pooey. [19:36] i guess that's the packaging walkthrough done. if you're in here, then you probably aren't ready to do a library package (those are more complicated to do) [19:37] and generally speaking, the right place to come and offer assistance is #debian-cli on OFTC, where we do packaging related discussion, including for ubuntu [19:37] now i'm going to open up the Q&A. bear with me whilst i try and wrangle classbot [19:38] sera asked: Which version of Mono will be available in Oneiric? [19:38] Oneiric will ship with Mono 2.10.1. [19:39] we're also taking the opportunity to rebuild the entire world using the 4.0 class library (.NET 4.0), replacing the 2.0 class library (.NET 2.0 -> 3.5) that's served us for the last few years [19:39] we always have only one "supported" runtime in releases, because otherwise the package dependency chain for high-level apps like banshee bloats up [19:40] once the transition is over, only 4.0 libraries will be installed by default, not a mix of 2.0 and 4.0 - and older apps are simply rebuilt for 4.0 (we even have old 1.0 apps that we;ve been rebuilding as 2.0 for a while) [19:40] .net generally has major class library versions - they avoid changing (and breaking) it, unless there's a real breaking change. they've only broken it twice so far - 2.0 and 4.0 [19:41] monodevelop will also default to 4.0 for new projects, in oneiric (barring an annoying bug i haven't found, which means the first time you run it, it defaults to 2.0). existing projects will cease to compile, unless you change the target framework version to 4.0, as the libraries you use like gtk# will also be 4.0-only [19:41] monodevelop 2.6 beta 3 is already in oneiric [19:42] okay, next [19:42] dell asked: please can you give the package name. I did not find it in UDW page [19:43] "docky", "sparkleshare" and "keepass2". sparkleshare is oneiric-only, don't worry about it if you're not on oneiric (or debian, i guess). keepass2 is in natty-backports, if memory serves. [19:43] bullgard4 asked: The Ubuntu programm is called KeePassX. Why do you call it »keepass2«? === yofel_ is now known as yofel [19:44] KeePassX is a Qt (i think?) reimplementation of the original Keepass 1. Keepass 2 in Ubuntu is the "real" keepass2, as found on Windows, which is a .NET app. the packaging for this is done by jtaylor. [19:44] users are free to use their preferred app - i believe keepass2 has more features than keepassx, but looks kinda bad due to being a SWF app [19:44] bullgard4 asked: What does mean the phrase »for the greater good« in the headline: "Packaging Mono for the greater good"? [19:45] there are a few mono apps out there on the web, with home-grown packaging (i.e. which don't follow the packaging best practices from this talk). those packages tend to suffer somewhat as a result. the universe will be just that little bit better if more mono apps are packaged *well* [19:46] matteonardi asked: do you know if MonoDevelop is "good enough" for auto-generating autotools setups for simple projects? (I'm developing a simple checkers game with mono.. and after taking a look at autotools, I'd rather avoid them if possible!) [19:47] honestly, I don't know. i haven't used the autofoo integration much. from a packaging perspective, i know sources produced this way have some issues, which we need to patch in the packages. [19:48] given the maturity of xbuild, and that MD uses VS.NET project format as its own data format, i'd be inclined to use that - it also invites contributions from windows-based developers, since the same source can be compiled on windows easily, in vs.net or monodevelop or sharpdevelop, without needing cygwin or mingw [19:48] when i started using mono, we had neither autofoo integration nor xbuild. it was all manual. and all this was green fields ;) [19:48] bullgard4 asked: '/usr/local/src$ sudo apt-getsource keepassx; gpgv: Unterschrift kann nicht geprüft werden. Öffentlicher Schlüssel nicht gefunden.' Why can apt-get source not find the public key? [19:49] "apt-get source" uses your personal gpg keyring for verifying downloads. if you don't have the key in question in your personal keyring, then it'll throw an error. you can use "gpg --recv-key ABCDABCD" for the key id in question, to download & add it [19:50] bullgard4 asked: Why did you write the 1st version of the Banshee plugin to access the Ubuntu One music store in Mono and not in Python? [19:50] because banshee is a mono app - it made sense to make a mono app plugin in c# [19:50] There are 10 minutes remaining in the current session. [19:51] as it happens, most of the heavy lifting in that plugin is done by libubuntuone, which is a C library - but it offers a C# binding (i might have done that too, i don't remember). the only parts written in c# are linking the gtk+ events into banshee, and handling the library adding for downloading tracks [19:52] coalitians asked: I ram dpkg --build docky-2.1.2 but i get this error [19:52] dpkg-deb: error: failed to open package info file `docky-2.1.2/DEBIAN/control' for reading: No such file or directory [19:52] try dpkg-buildpackage. "dpkg --build" does something subtly different [19:53] sera asked: Are the difficulties in packaging Mono over? i.e. will we get Mono 2.12 in 12.04? [19:53] I can't make promises given 2.12 doesn't exist yet... i can say that uploads involving a transition (e.g. this 4.0 transition which is currently ongoing and about half complete) take MUCH longer than those without [19:54] mono's source package builds over a hundred binary packages - that's a lot of manual checking to do [19:54] there's also the time taken to make mono build on multiple architectures, update our ports (e.g. kfreebsd-amd64 in debian), and so on. it takes time [19:55] we have a new workflow which should allow for faster, more frequent uploads of new mono releases, but it's still largely dependent upon one person, who does this work in his spare time (and therefore it isn't reasonable to *demand* things from him). [19:55] There are 5 minutes remaining in the current session. [19:56] in my experience, a visit to the team's donations page (http://wiki.debian.org/Teams/DebianMonoGroup/DonationRegistry) and a donation to Mirco Bauer are an excellent way to get updates to Mono itself. although i think 2.10.1 is pretty final for oneiric (no 2.10.2, not worth it at this point) [19:56] bullgard4 asked: What IRC channel do you frequent? I am asking for the case that I have additional questions after having studied in full your lession. [19:57] #debian-cli on irc.oftc.net is the best bet. that's where mono-related things happen. [19:57] !q [19:57] bah. anyway, no questions in the queue? [19:57] 3 minutes remaining. ask anything [19:58] rww asked: What's your favorite colour? [19:58] bloo! [19:58] john_g asked: Maybe I missed this. What does cli mean in this context? [19:59] Common Language Infrastructure. it's a term used in the .NET standards documentation, without the trademark associations of "microsoft .net" [19:59] grungekid_ asked: What are the advantages of using mono over other languages such as python? Why do you choose to use it? [20:00] i personally deeply dislike python syntax - and c# tends to perform MUCH faster than python. it's good if you have a java background, syntacically [20:00] and i'm out of time. i'll finish questions in #ubuntu-classroom-chat [20:00] next up is... barry i think? [20:00] directhex: indeed! === 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: Python packaging with dh7 and dh_python{2,3} - Instructors: barry [20:00] we'll start in just a minute or two [20:01] Logs for this session will be available at http://irclogs.ubuntu.com/2011/07/11/%23ubuntu-classroom.html following the conclusion of the session. [20:06] hello everyone and welcome to my session. today we're going to talk about packaging python libraries using dh_python2 and dh_python3 [20:06] please feel free to ask questions at any time over in #ubuntu-classroom-chat [20:06] so first some background: [20:06] there are two common legacy python helpers you'll find in various packages, python-central and python-support [20:07] python-central has been deprecated for a while, and python-support was just recently deprecated. [20:08] of course, many packages have still not been converted, and we had a jam session a week or so back where folks from the community helped convert packages on the ubuntu cds. if we have time and interest, i can talk more about those transitions [20:08] today we have the new goodness for packaging python2 stuff: dh_python2 [20:09] the only helper for packaging python3 stuff is: dh_python3 [20:10] using dh_python2 can make most of your packaging work almost too trivial. many many packages can have no more than a 3 line rules file [20:10] provided you already have a good setup.py [20:10] mhall119 asked: can you use dh_python2 for packaging on Lucid yet? [20:11] mhall119: we are working on a back port of the full toolchain for lucid. many people need this, so stay tuned! [20:12] let's look at a simple package to see what this would look like. does everybody know how to use bzr to grab branches from launchpad? [20:13] okay, here's the url to the basic, un-debian-packaged version: lp:~barry/+junk/stupid [20:13] bzr branch lp:~barry/+junk/stupid [20:14] now, this is a very simple python package, but it does have one interesting thing: it has an extension module [20:14] if you look in src, you'll see the C file containing the extension module [20:14] if you look in stupid, you'll find the python code that wraps that [20:14] notice the unit tests :) [20:15] you can take a look at the setup.py to see it's a fairly typical thing [20:15] it's got an ext_modules defined for the extension, a few other bits of metadata, and it identifies the header file [20:15] note too, the test_suite key which names the unit tests [20:16] you could install this into a virtualenv using either python2.6, 2.7, or 3.2 using the following commands: [20:16] (this should work on natty) [20:16] virtualenv -p python2.7 [20:17] oops [20:17] virtualenv -p python2.7 /tmp/27 [20:17] source /tmp/27/bin/activate [20:17] python setup.py install [20:18] python -c 'import stupid; stupid.yes()' [20:18] that should print 'yes' [20:18] then run `deactivate` to get out of the virtualenv [20:19] you could substitute the following for the -p option python2.6 or python3.2 and that would give you a virtualenv with the appropriate python [20:19] NMinker asked: What is virtualenv? Is that a Virtual Environment? [20:20] ah. virtualenv is a python tool for creating isolated development environments. with a virtualenv, you can install stuff locally for testing without affecting your system python [20:20] it's a *very* handy tool if you're working on python code [20:20] sudo apt-get install python-virtualenv [20:21] okay, so "stupid" is a simple python package with a good setup.py, and which is compatible with python 2.6, 2.7 and 3.2 [20:21] how do we turn that into a debian package? [20:22] first we have to create the debian source package from the python package, then we can upload that source package to a ppa, or build it locally with pbuilder or sbuild [20:22] i am kind of assuming folks know basic packaging stuff, like how to use pbuilder, debuild, and such.. [20:23] okay, so let's create the source package [20:23] first, i'll introduce you to a very nice, new tool which can almost always get you started quickly. [20:24] https://launchpad.net/pkgme [20:24] pkgme is actually a packaging framework. it's not tied specifically to python, although it is written in python, and supports packaging python things [20:25] it knows about other languages and such, but for our purposes, it does a great job of creating the initial debian/ directory layout based on your setup.py [20:25] i highly recommend grabbing the ppa, using these commands: [20:25] sudo add-apt-repository ppa:pkgme-committers/dev [20:25] sudo apt-get update [20:25] sudo apt-get install pkgme [20:26] once it's installed, you just run this commands from the directory containing your setup.py [20:26] pkgme [20:26] :) [20:26] that's it [20:26] now, i've done this for you, so if you don't want to install the ppa [20:26] you can just do this: [20:26] bzr branch lp:~barry/+junk/stupid.pkgme [20:27] why don't you run pkgme locally, or grab the branch. i'll give you a minute or so and then we'll look at the details [20:27] pkgme knows about dh_python2 so it does the right thing [20:28] notice that you've now got a minimal debian/ directory. yay! you have a source branch [20:28] or "packaging branch" [20:29] take a look at the debian/control file. if you have any packaging experience, you'll see this one is bare minimum, but adequate to start with [20:30] the important things to note here are that it has a proper Build-Depends: line, and it's grabbed a few meta bits from the setup.py. it's missing a description (that is because the setup.py doesn't have one, not because pkgme missed it), so you'd want to fill that out [20:30] NMinker asked: What's the difference using pkgme and dh_make to create the debian folder? [20:31] pkgme is a framework where rules can be added for more specific knowledge of particular languages, classes of packages, etc. you could use either tool, but i like where pkgme is going, and it has very good python rules [20:31] now, bring up debian/rules in your editor, because this is where the fun stuff happens [20:32] you can see, this is just a 3 line rules file essentially, and i'll step through what is happening [20:32] the first line isn't interesting, it's just standard debian packaging [20:33] ah, slight detour [20:33] jykae: noticed that could not be found, and here's why [20:34] pkgme actually didn't quite do the right thing with the Build-Depends line (yes, i will file a bug :) [20:34] it added a dependency on python-all, but because stupid has an extension module, it needs to be compiled by the c compiler. thus it needs the python-all-dev package, which includes python's own header files and such [20:35] so you would need to change the Build-Depends line to be python-all-dev [20:35] anyway, back to the rules file [20:35] the %: line is fairly standard stuff, and introduces the make target [20:35] it basically matches anything [20:35] the really fun stuff is in the next line [20:36] dh is the magical debhelper sequence, and it almost always does the right thing for python packages [20:36] (the one exception is for python3 stuff, which we'll get to later. you have to do some manual overrides for python3, but we're working on that) [20:36] the really important thing is the `--with-python2` option [20:37] that is what tells dh to use dh_python2 to build your package [20:37] in our case, it's really the only thing you need to add [20:37] what is `--buildsystem=python_distutils` then? [20:37] well, in this specific case, it's not required, but you will often want to add it [20:37] by default dh will ignore the setup.py if there is a Makefile there [20:38] stupid doesn't have a Makefile but many packages do, e.g. to add `make build` or `make test` targets for convenience [20:38] the --buildsystem=python_distutils tells dh to use the setup.py for various steps and ignore the Makefile [20:39] anyway, that's really all you need! you'll notice that pkgme adds other standard debian/ files such as changelog, compat, and copyright. that's more packaging-fu than python-packaging-fu so i'll skip over that. i.e. none of that pertains to python packaging specifically [20:40] okay, so you should be able to take that pkgme branch, debuild -S and run pbuilder to give you a nice binary package for stupid [20:40] i'll pause for a moment for questions [20:41] okay then, moving on [20:41] remember that stupid is compatible with python2 and python3, so how would we need to modify the debian/ directory so that both versions are installed? [20:41] the first thing to understand is that in debian and ubuntu, we have completely separate stacks for python2 and python3 [20:42] this means if you want a python3 version of a package, you need to install python3-foo [20:42] a good example is python-apt and python3-apt [20:42] john_g asked: So what part of the work does setup.py do and what part do the dh_ things do? [20:43] setup.py does most of the work. my recommendation is to use virtualenv and make sure your package builds, installs, and tests exactly as you want it in a python-only world (i.e. w/o debian/ubuntu getting involved) [20:43] get a solid setup.py first, using the normal python development tools. once you have that, your debian packaging job will be *much* easier [20:44] dh_python2 does the bits to lay the package out properly within the debian file system, and to ensure that byte-compilation triggers are properly invoked when the package is installed on your system [20:44] (the .pyc files are not included in the package) [20:44] so, python3 [20:45] bzr branch lp:~barry/+junk/stupid.py3 [20:45] let's first look at the debian/control file [20:45] you'll noticed i fixed the Build-Depends :) [20:45] but also notice that it b-d's on both python-all-dev (for python 2) and python3-all-dev (for python3) [20:46] notice too that i've added an X-Python-Version line and an X-Python3-Version line. this is how you control which python versions out of all that might be installed on your system, are compatible with your package [20:46] e.g. i've said that stupid is only compatible with python 3.2 and above, and python 2.6 and above [20:47] notice that i've also created two binary package stanzas, one for python-stupid and one for python3-stupid, as per the separate stack requirements [20:47] if you pull up debian/rules you'll see the additions there [20:47] we're running short on time, so i'll run through this quickly ;) [20:48] DH_VERBOSE=1 just tells dh to spew more detailed info on what it's doing. this line is not required [20:48] the PYTHON2 and PYTHON3 lines use shell helper functions to determine which versions of python are actually installed. we'll use these in the rules below [20:49] notice line 10, where all we've added was --with=python2,python3 [20:49] that invokes dh_python3 during that part of the build process [20:49] now look at lines 13-17 [20:49] i wanted to make sure that my package's tests are run during the build process, and the build should fail if the tests fail [20:50] however, i need to make sure the tests are run for every version of python we're building for [20:50] dh does not know how to do this (yet ;), so we have to add some manual rules to make this work [20:50] the test-python% lines just invoke the package's unittests with increased verbosity [20:50] There are 10 minutes remaining in the current session. [20:51] the override_dh_auto_test bit is the really key for making this work, because here we're overriding dh's standard dh_auto_test call with our own. because it depends on the test-python% target, all the tests will get invoked the way we want them to [20:51] now look at lines 20-eof [20:52] one problem we have is that dh does not yet know how to properly install the python3 built parts, so we have to do this manually [20:52] thus the override_dh_auto_install [20:52] we can just call dh_auto_install to do the right thing for python2 [20:53] but then we have to manually cycle through all python3 versions and do setup.py install with some magic arguments, in order to get the python3 parts properly installed [20:53] finally, if you look in debian/ directory, you'll see two .install files. this is how you tell the packaging toolchain which files to install for which of the multiple binary packages are getting built [20:53] look at the contents of each, and you'll see how we separate the python2 and python3 stacks [20:54] okay, i'm sorry but we've nearly run out of time. i wish i could have covered more, but hopefully this was helpful [20:54] does anybody have any questions? [20:55] please feel free to use these three branch for cargo culting :) i'll leave them alone and update them as the tools improve. stupid.py3 should build fine on natty [20:55] NMinker asked: how do I convert to dh_python2? Or has that been covered? [20:55] http://wiki.debian.org/Python/TransitionToDHPython2 [20:55] There are 5 minutes remaining in the current session. [20:56] NMinker: i've done many conversions with these instructions. please join us on #ubuntu-pyjam for any questions after this session ends [20:56] questions or help [20:57] also, if you want to contribute to ubuntu, i can provide some packages that still need converting. we want to remove python-central and python-support from the oneiric cds, so this is a good way to gain some packaging cred [20:58] micahg points out also this for the larger transition effort: http://people.canonical.com/~ubuntu-archive/transitions/dh-python2.html [20:59] Cuzzie asked: If we want to package up the python application we wrote, we need to write all the rules, compat, control files ourselves? [20:59] Cuzzie: read the scrollback for the pkgme tool, or look into dh_make [21:00] pkgme is an excellent tool that will get you started [21:00] and with that, i think my session is done. i will hang around and answer more questions in #ubuntu-classroom-chat === 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 || [21:19] guys i am not familiar with irc so how can i check the log (in order to view the today classes)? [21:20] i mean today! [21:20] munzx: http://irclogs.ubuntu.com/2011/07/11/%23ubuntu-classroom.html [21:20] thank rsajdok [21:20] :) [21:20] munzx: no problem :) [21:26] note : it will be much better if you prohibit chats in this room and make another one for that... i had to read a punch of friendly conversation before i got to the main topics! [21:28] munzx: the chat channel is #ubuntu-classroom-chat [21:28] we keep this one unmoderated during off-times so folks can ask questions [21:29] and the logs are in UTC, so if you know which session you want to view, you can just scroll down in the logs to the appropriate timestamp :) === vincent is now known as Guest88465 [22:58] G