Dev Week -- Introduction to the Installer Team - Evan Dandrea -- Fri, Sep 5
(02:00:59 PM) evand: right, do I have a volunteer to field questions from #ubuntu-classroom-chat? (02:03:19 PM) evand: ok, I'll try my best to catch questions in #ubuntu-classroom-chat. Please keep discussion there to avoid making the log of this session difficult to read through. (02:04:10 PM) evand: So allow me to first introduce myself. My name is Evan Dandrea. I've been working on the installer since about 2006, originally as part of Google's Summer of Code where I wrote migration-assistant. (02:04:30 PM) evand: I now work for Canonical full time on the installer. (02:05:14 PM) evand: I'd also like to give a basic overview of the various components that the Installer Team looks after before going any further. (02:05:46 PM) evand: Ubiquity is what you're probably most familiar with. This is Ubuntu's graphical installer. (02:06:51 PM) evand: Some of you may also be familiar with the Alternate CD installer, otherwise known as debian-installer. Which just as it sounds is the installer Debian has been using for quite some time. They're also the source of upstream development on it. (02:07:42 PM) evand: In order to reduce duplication of effort, especially as it pertains to partitioning, Ubiquity is designed to use parts of debian-installer as a base. (02:08:07 PM) evand: That is, when you're on the "Who am I?" page of the graphical installer, it's really running the user-setup component of the alternate installer in the background. (02:08:29 PM) hggdh: evand, I will forward the questions (02:08:42 PM) evand: When you finish filling out this page, ubiquity takes your responses, properly formats them, and feeds them back into the debian-installer component. (02:08:45 PM) evand: thanks hggdh (02:09:18 PM) evand: It does this through debconf questions, which are the heart of debian-installer (02:09:42 PM) evand: every time d-i is asking you something, it's asking it through a debconf question. This goes for errors and any other kind of message as well. (02:10:00 PM) evand: More details on the integration between d-i and ubiquity can be found in the latter's README document, found here: (02:10:09 PM) evand: http://bazaar.launchpad.net/~ubuntu-core-dev/ubiquity/trunk/annotate/2781?file_id=README-20051205083553-550dab3cb68ad622 (02:10:34 PM) evand: There's also oem-config (02:11:11 PM) crd1b is now known as crdlb (02:11:25 PM) evand: This piece of software allows OEMs to defer the work of setting the language, timezone, and username to when the customer boots their computer for the first time (02:11:42 PM) evand: (OEMs, if you are not aware, are companies like Dell, HP, Sony, etc) (02:12:11 PM) evand: oem-config reuses a lot of code from ubiquity and operates in much the same way, secretly running d-i components in the background (02:12:45 PM) evand: In fact, since there's so similar, one of the future projects we may undertake is merging oem-config into the ubiquity tree (but more on future projects later) (02:13:29 PM) evand: these projects are all on launchpad, usually in http://launchpad.net/PROJECT, for example: http://launchpad.net/ubiquity (02:14:10 PM) evand: however, with the exception of wubi (to be discussed later), we always file bugs on these projects on the version that exists in Ubuntu: (02:14:34 PM) evand: http://launchpad.net/ubuntu/+source/PACKAGE/+bugs or http://launchpad.net/ubuntu/+source/ubiquity/+bugs for example (02:15:30 PM) evand: I forgot to note that d-i is a mixture of posix shell code and C. Ubiquity and oem-config are mostly written in python, with a very small amount of shell code to help with d-i interactions. (02:16:22 PM) evand: there are two additional projects currently ongoing as part of the Installer Team work, but I'll delve into them later. They are wubi and usb-creator. (02:16:39 PM) evand: so now I'd like to briefly introduce the team (02:16:54 PM) evand: https://wiki.ubuntu.com/InstallerTeam (02:17:44 PM) evand: Colin Watson is really the center of the team. He's been working on ubiquity since development was taken over from the Guadalinex team. (02:18:00 PM) evand: He's also very involved in Debian, and works on d-i upstream there as well. (02:18:35 PM) evand: Jonathan Riddell has done a lot of work on the KDE frontend to ubiquity and we often consult with him for such work. (02:18:45 PM) evand: oh, IRC names would probably help (02:18:57 PM) evand: cjwatson is Colin, riddell is Jonathan (02:20:10 PM) ***Riddell waves (02:20:33 PM) evand: Mario Limonciello works on Mythbuntu, specifically the Ubiquity Mythbuntu frontend (they have some additional pages for Mythbuntu specific questions) (02:21:06 PM) evand: though he also works for Dell and has a vested interest in a lot of the automation work that goes into the installer. (02:21:21 PM) evand: he's also hopefully going to be approved for core-dev soon (02:22:22 PM) evand: Luke Yelavich has done a lot of the accessibility work in Ubuntu, specifically the a11y options you see on the install CD bootloader (02:22:37 PM) evand: he's also working on getting dm-raid working this cycle. (02:23:51 PM) evand: I should note that there is one more piece to this puzzle, casper. It is the initramfs environment that handles taking the options passed by the install CD bootloader and acting upon them with the mounted filesystem for the live environment (02:24:43 PM) evand: for example, Luke's accessibility options are read from the kernel command line in casper and then casper sets the right gconf keys and modifies the right files to enable them (02:25:16 PM) evand: Agostino Russo works on Wubi, the Windows Ubuntu installer that was introduced in 8.04 (02:26:16 PM) evand: and I work on Ubiquity as mentioned, some bits of d-i, and most recently help with Wubi and develop usb-creator, which is a tool to take an Ubuntu CD or ISO and write it properly to a USB disk. (02:26:55 PM) evand: we also have a number of people who contribute small patches here and there. (02:27:19 PM) evand: there are also two people who are not on the team, but play a role in our work. (02:27:59 PM) evand: Matthew Paul Thomas (mpt) is our local usability expert. He is extremely helpful in getting UI designs right. (02:28:24 PM) evand: (I forgot about IRC names again, Luke is TheMuso, Mario is superm1, and Agostino is ago) (02:28:54 PM) evand: Dustin Kirkland (kirkland) is also working on getting iscsi support in the alternate CD installer (d-i) this cycle. (02:29:38 PM) kirkland: evand: trying to :-) (02:29:41 PM) evand: heh (02:29:55 PM) kirkland: evand: hits some road blocks, not sure if enough was accomplished by Feature Freeze (02:30:16 PM) evand: fair enough (02:30:25 PM) evand: best of luck going forward on that work (02:31:01 PM) evand: so some of the things we're currently working on... (02:31:24 PM) hggdh: gQuigs> QUESTION: usb creator, how is development going/when good enough for inclusion? (02:31:28 PM) evand: perfect timing (02:31:34 PM) evand: I was just going to talk about that (02:31:59 PM) evand: development has hit a few road blocks, but it made it into the archive in time for FeatureFreeze (02:32:40 PM) evand: it can be found in the archive as usb-creator, but I hope to import it into bzr today and create a proper project page for it. (02:32:54 PM) hggdh: QUESTION: how's LVM and mutiple filesystems going on Ubiquity? (02:33:43 PM) evand: LVM> not well. We don't have anyone tasked to it at the moment and unfortunately it's a large project that requires a fairly good understanding of d-i, ubiquity, and partman. (02:34:28 PM) evand: LVM as part of encrypted by default filesystems will probably land before proper LVM support as the former can just be a checkbox while the latter requires working it into the advanced partitioning page (02:34:51 PM) evand: this was a deferred specification from 8.04, if I recall correctly, that we just have not had time for. (02:35:11 PM) evand: (feel free to pick up any of these specifications, but fair warning, that one is pretty daunting) (02:35:29 PM) hggdh: :-) I know... (02:35:53 PM) evand: hrm, wiki links would probably help for some of these (02:36:04 PM) evand: http://wiki.ubuntu.com/USBInstallationImages (02:36:06 PM) evand: is usb-creator (02:36:59 PM) evand: I'll have to dig for the encryption one (02:37:20 PM) evand: https://wiki.ubuntu.com/UbiquityVisualRefresh (02:38:07 PM) evand: ubiquity visual refresh was a fairly large specification that we worked this cycle, though unfortunately only the partition bar code landed in time and the rest is still in development and will have to be deferred (02:38:40 PM) hggdh: evand, https://wiki.ubuntu.com/EncryptedFilesystemsInstaller ? (02:39:22 PM) hggdh: <gQuigs> QUESTION: difference between usb-creator and liveusb (https://launchpad.net/liveusb)? (02:39:23 PM) evand: yes! thanks (02:40:20 PM) evand: liveusb is another project that does roughly the same thing, but after looking over the code they had, I found it would be quicker to develop from scratch given some of the design goals than modify that project to suit our needs (02:40:39 PM) evand: hopefully we can collaborate in the future and perhaps merge the two (02:41:08 PM) evand: Fedora also has a tool that does a similar thing (02:41:42 PM) evand: But it was written in PyQt, and we explicitly wanted this to be frontend neutral (though first in GTK) (02:41:56 PM) evand: There will eventually be KDE and Windows frontends (02:42:17 PM) evand: https://wiki.ubuntu.com/DVDPerformanceHacks (02:42:52 PM) evand: Currently on the DVD the installer copies over all the files for language packs, then removes each language pack package later on (02:42:59 PM) evand: This is horribly slow (02:43:14 PM) evand: So we reworked the code to filter out the files while copying. (02:43:43 PM) evand: speed and memory usage are a constant concern for us (02:44:23 PM) evand: https://wiki.ubuntu.com/WubiIntrepid (02:44:48 PM) hggdh: <fluteflute> QUESTION: You said usb-creator was in the 'archive'. I can't find it in there: http://packages.ubuntu.com/search?suite=default§ion=all&arch=any&searchon=names&keywords=usb-creator (02:44:56 PM) evand: Wubi is possibly getting rewritten this cycle as it was previously written in NSIS which is horribly buggy. (02:45:38 PM) evand: ah, my mistake and entirely my fault. (02:45:52 PM) evand: It failed to build and is requiring another upload. It should appear later today. (02:46:11 PM) evand: the source package is in http://archive.ubuntu.com/ubuntu/pool/universe/u/usb-creator/ for the impatient (02:46:40 PM) evand: and finally as mentioned, Dustin is working on iscsi and Luke is working on dm-raid. (02:46:52 PM) evand: Some future things we'll be working on: (02:47:12 PM) evand: Finishing up the slideshow and timezone map redesign work as part of ubiquity-visual-refresh (02:47:29 PM) evand: the former it mostly a task for the artwork and documentation teams (02:47:47 PM) evand: as there is really very little code that needs to be written for ubiquity to display a slideshow (02:48:20 PM) evand: the latter is a fairly detailed design, so in the interest of time, I refer you to the ubiquity-visual-refresh specification for its details (02:49:23 PM) evand: We planned out a tool to properly migrate wubi installs to dedicated partitions but did not have the resources to implement it this cycle, but hopefully that will get picked up for 9.04 (02:49:55 PM) evand: the notes from that are also in https://wiki.ubuntu.com/WubiIntrepid (02:50:13 PM) evand: it's a fairly large project, unfortunately (02:50:53 PM) evand: we are constantly looking at the usability of the installer and are fortunate to have a few usability studies to work with (see the ubuntu-devel mailing list archives for details of them) (02:51:13 PM) evand: there's also a number of old specifications to pick up from previous releases (02:51:32 PM) evand: I'm going to work on getting those added to our team wiki page in case anyone is interested in working on them (02:52:17 PM) evand: I'm going to stop and field questions before I go on to the next part as we're getting close to the end (02:52:22 PM) evand: any questions? (02:53:06 PM) hggdh: guess not, evand. (02:53:16 PM) evand: ok (02:54:02 PM) evand: so if you have an idea for a project as part of the installer, the best thing you can do is write up your thoughts, come up with a design and plan to implement it and come into #ubuntu-installer to talk about it (02:54:16 PM) evand: if you don't get a response, take it to firstname.lastname@example.org (02:54:36 PM) evand: if you can afford the time, propose the idea for UDS (02:54:51 PM) evand: https://wiki.ubuntu.com/UDS (02:55:15 PM) evand: that way it gets the benefit of input from the entire development team (02:55:35 PM) evand: you don't have to physically at UDS to participate either, you can VoIP call in (02:56:07 PM) evand: but please keep in contact with us as you develop things so we don't overlap efforts and we have an idea of how soon your work can be merged in (02:56:28 PM) evand: bug traiging also helps us quite a bit, but I'm afraid I don't have time to go into the details of that (02:56:37 PM) evand: I'd suggest first getting involved in the BugSquad for that (02:57:39 PM) evand: If you're interested in the work we're doing, we don't have team meetings, but Luke, Colin, and myself are part of the Ubuntu Foundations Team and discuss our work there, Dustin is part of the Server Team, and Jonathan is part of the Desktop Team (02:58:37 PM) evand: We encourage code to be managed using bzr as all of our existing work is in bzr and it makes it significantly easier to merge your code in if its in the same VCS (02:58:42 PM) evand: but it's not a requirement (02:59:04 PM) evand: finally, come lurk in #ubuntu-installer to get a feel for the team if you're interested in helping (02:59:07 PM) evand: we don't bite (02:59:17 PM) evand: ok, thanks for your time and questions (02:59:26 PM) evand: enjoy the rest of the Developer Week!