=== txwikinger2 is now known as txwikinger === wylde_ is now known as wylde === epikvision is now known as thinkndev === thinkndev is now known as epikvision [12:30] Is anyone online? [12:30] Is anyone online? [12:35] What time will the classroom session start in CEST? [12:36] 17 CEST I believe [14:53] * coolbhavi peeps around [14:56] * epikvision checks his watch. [14:57] 3 mins to go :) [14:58] just on time? [14:59] yes just about to start [14:59] :) [14:59] nice :D [14:59] X) [15:00] Alrightie === 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: MOTU School - Current Session: Introduction to the Ubuntu Development World for Beginners - Instructors: coolbhavi [15:00] lets get this kicking now [15:00] :) [15:01] I am bhavani contributing as a ubuntu member for past 5 years [15:02] and today m going to introduce you to the ever exiting world of ubuntu development [15:02] so lets get the basics of session first [15:02] in #ubuntu-classroom the presenter will hold the session, explain and demo everything [15:03] in #ubuntu-classroom-chat we all can chat and ask questions [15:03] so if you haven't joined #ubuntu-classroom-chat yet, please do so [15:03] also if you ask questions, please make sure you prefix them with QUESTION: [15:04] like QUESTION: What is ubuntu [15:04] so lets move on [15:05] What is ubuntu basically? Ubuntu is made up of thousands of different components, written in many different programming languages. every component being available in source code === mike is now known as Guest40172 [15:06] source packages in the ubuntu world consists of 2 parts mainly the source code and metadata [15:06] Metadata includes the dependencies of the package, copyright and licensing information, and instructions on how to build the package. [15:07] Once this source package is compiled, the build process provides binary packages, which are the .deb files users can install. === thinkndev is now known as epikvision [15:08] very 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 Launchpad's build daemons to compile the package [15:08] s/very/every* [15:08] The resulting binary packages then are distributed to the archive and its mirrors in different countries. The URLs in /etc/apt/sources.list point to an archive or mirror. [15:09] !q [15:09] oops [15:10] alright lets move on [15:11] we will talk a bit about release cycle in ubuntu now [15:11] We release a new version of Ubuntu every six months, which is only possible because we have established strict freeze dates. [15:13] epikvision asked: what's the difference between source and binary packages? [15:14] epikvision, basically in simple terms a source package means a package which contains the source code and binary package is an executable file which gets generated after build of a source [15:16] freeze date means nothing but we freeze on some point and move on to testing a particular feature in a more detailed fashion [15:19] If you have a look at https://wiki.ubuntu.com/QuantalQuetzal/ReleaseSchedule you can see the release schedule for the 12.10(quantal) cycle with defenition of various iterations and freezes in devel cycle [15:20] ok lets move on and let me show you what you need to kickstart ubuntu development [15:22] the basic start goes on with installing packaging related software setting up your ssh and gpg keys for encryption and pbuilder [15:23] to build packages in a local pristine environment [15:24] type this command if you are on a newer release of ubuntu: sudo apt-get install packaging-dev [15:24] or if you are on a older release then sudo apt-get install gnupg pbuilder ubuntu-dev-tools bzr-builddeb apt-file [15:25] so that should get in all packages needed to start off with ubuntu development [15:27] epikvision asked: Should prospective developers run the latest development release of Ubuntu? [15:28] epikvision, generally recommended to run the latest development release in ubuntu so that you can get access to all the changes which are happening to the packages in the cycle [15:29] Niraj asked: How much internet bandwidth and disk space is needed for setting developer machine? given that both may be restricted for few of us. [15:30] Niraj, I use a internet connection with 50 kbps download rate on average so its not a constraint I believe :) [15:31] so moving on 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. pbuilder a tool to do a reproducible builds of a package in a clean and isolated environment. [15:31] ubuntu-dev-tools make the process of ubuntu development easier [15:32] these are some of the packages which are present in packaging-dev package [15:32] so moving on [15:32] to create a gpg key run gpg --gen-key in a terminal [15:33] G 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. [15:34] Afterward, it will ask you if you want it to expire the key at some stage its always safe to use default option [15:34] ie no expiry [15:34] 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. Then you will have to set a passphrase, choose a safe one (a passphrase is just a password which is allowed to include spaces). [15:35] 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, type some paragraphs of random text, load some web page. [15:35] borax12 asked: How do i check if i already have a gpg key generated or not ? [15:36] borax12, gpg --list-keys will show the keys present on your system [15:37] alright moving on ssh key generation: if you have a SSH key already generated, skip these instructions. :) [15:38] If gpg is still sitting there creating your GPG key, just open another terminal window or tab. and type ssh-keygen -t rsa [15:38] The default file name usually makes sense, so you can just leave it as it is. For security purposes, it is recommended that you use a passphrase. [15:39] ssh is for example used if you push branches to Launchpad [15:40] ok moving on [15:40] setting up pbuilder now [15:41] pbuilder allows you to build packages locally on your machine. It serves a couple of purposes: 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 and There is no need to install all necessary build dependencies locally [15:43] You can set up multiple instances for various Ubuntu and Debian releases to create a pbuilder run pbuilder-dist quantal create if you are running quantal [15:44] ok getting to work with launchpad then: [15:45] once your gpg is done you need to upload it to a keyserver: gpg --send-keys --keyserver keyserver.ubuntu.com [15:45] This will send your key 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 contributions around the world. [15:46] to upload your gpg and ssh keys to launchpad do: [15:48] https://launchpad.net/~myname/+editpgpkeys and copy the generated fingerprint https://help.launchpad.net/YourAccount/ImportingYourPGPKey will help you on the same [15:50] There are 10 minutes remaining in the current session. [15:51] to use bazaar with ubuntu and to upload ssh keys A forums post here will explain in detail http://ubuntuforums.org/showthread.php?t=916132 [15:51] last bit is editing your bashrc [15:53] add this: export DEBFULLNAME="Your name" export DEBEMAIL="yourname@example.com" [15:54] Now save the file and either restart your terminal or run: source ~/.bashrc (If you do not use the default shell, which is bash, please edit the configuration file for that shell accordingly.) [15:55] There are 5 minutes remaining in the current session. [15:55] with that dch will parse your name and email id while committing packages and you should be done [15:55] :) [15:55] with setup of devel env [15:57] borax12 QUESTION:is the ubuntu kernel team open to contributions ? [15:58] yes please see: https://wiki.ubuntu.com/KernelTeam/ [15:58] ok thats it from me for now [15:59] thanks for attending the session [15:59] epikvision asked: When's the next class? [16:00] Logs for this session will be available at http://irclogs.ubuntu.com/2012/07/11/%23ubuntu-classroom.html === 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 || [16:00] epikvision, we plan to have it every month until end of this cycle === fenris_ is now known as Guest10826 === Guest10826 is now known as ejat === fenris is now known as Guest42115