[04:21] <changed_nick> when is next lecture going to start and what will be the topic?
[04:27] <chandan_kumar> changed_nick, https://wiki.ubuntu.com/UbuntuDeveloperWeek
[04:28] <chandan_kumar> changed_nick, go to that url ,you will got all the details regarding the classs....
[04:49] <changed_nick> chandan_kumar: thank you :)
[04:53] <chandan_kumar> changed_nick, yours welcome.
[13:11] <raki_> what is the time for developer week today?
[13:12] <Mkaysi> raki_: http://is.gd/8rtIi
[13:14] <raki_> thank you!!
[13:18] <raki_> are there any logs forthe previous days
[13:18] <Mkaysi> Maybe https://wiki.ubuntu.com/Classroom has link.
[13:19] <Mkaysi> There should be logs.
[13:19] <Mkaysi> raki_: https://wiki.ubuntu.com/Classroom#Logs/Transcripts
[13:24] <Pendulum> wiki.ubuntu.com/UbuntuDeveloperWeek has links to logs (just yesterday's are in progress but will be up in about 5 minutes as long as the wiki cooperates with me)
[13:34] <Pendulum> all the logs from Developer Week so far are now up at https://wiki.ubuntu.com/UbuntuDeveloperWeek/
[15:06] <Fvic> please guide me how to use this channel?someone told me this is best place to learn about linux...
[15:20] <Mkaysi> Fvic: https://wiki.ubuntu.com/Classroom
[15:54] <techbreak> which session today ?
[15:55] <dholbach> HELLO MY FRIENDS! WELCOME TO DAY 4 of UBUNTU DEVELOPER WEEK!
[15:56] <dholbach> if you need any information at all (which sessions, etc.) head to: https://wiki.ubuntu.com/UbuntuDeveloperWeek
[15:56] <dholbach> also... if you haven't joined #ubuntu-classroom-chat yet, you might want to do that now
[15:56] <dholbach> because that's where we chat and ask questions
[15:56] <dholbach> if you have questions, please ask - we want our sessions to be as interactive as possible
[15:57] <dholbach> if you do ask, please make sure you prefix your question with QUESTION:
[15:57] <dholbach> ie: QUESTION: Which language should become default language of Ubuntu?
[15:58] <dholbach> The first session of the day is lead by an awesome guy, a friend and colleague of mine, who probably has an opinionated answer to the last question
[15:58] <dholbach> it's David Planella, Mr. dpm
[15:58] <dholbach> who is going to talk about hooking up your application with Launchpad Translations
[15:59] <dholbach> dpm, you still have a few minutes until you get started :)
[15:59] <dholbach> have a great day 4 every one - enjoy the sessions!
[16:00] <dpm> Thanks dholbach, I've got the right answer to that question, but we'll leave it for another full session :)
[16:00] <dholbach> of course you do :)
[16:00] <dholbach> enjoy!
[16:00] <dpm> ;)
[16:01] <dpm> Let's wait a couple of minutes for everyone to join in, and then we can get started
[16:01] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/03/03/%23ubuntu-classroom.html following the conclusion of the session.
[16:03] <dpm> Ok, let's get started...
[16:03] <dpm> Hi all
[16:04] <dpm> Welcome to this Ubuntu Developer Week talk on integrating your package with Launchpad Translations
[16:05] <dpm> I'm David Planella, from the Community team at Canonical, and my job as the Ubuntu Translations Coordinator is to make sure, with the help of our awesome translations community, that Ubuntu rocks equally hard in every language.
[16:05] <dpm> Today I'd like to get a bit more technical and explain how you can make sure your package is well integrated with the Launchpad Translations web app,
[16:06] <dpm> so that Ubuntu translators can happily do their work and provide a well localized OS to our users.
[16:06] <dpm> Just to give you a brief summary, here's how it will go:
[16:06] <dpm> We'll first start with a couple of background subjects, then we'll go more into the details related to packaging and finally we'll wrap it up with a Q+A session
[16:07] <dpm> If you have questions during the session though, feel free to interrupt and ask me on #ubuntu-classroom-chat
[16:07] <dpm> So, without further ado...
[16:07] <dpm> Let's roll
[16:07] <dpm> Integrating Your Package with Launchpad Translations
[16:07] <dpm> [16:07] <dpm> So, as mentioned in the intro, the idea of this talk is to give you an overview of what is needed in your package to play well with Launchpad and for their translations to be exposed to translators there.
[16:08] <dpm> Note that this only essentially applies to packages in the main and restricted repositories (and additionally for the -security, -proposed and -updates pockets).
[16:09] <dpm> Only their translations will be imported into Launchpad and delivered in language packs (more on this in a few minutes).
[16:09] <dpm> Packages in universe, multiverse, etc. will not be translatable in Launchpad, and translations will be shipped with the packages and have no direct interaction with Launchpad or the language pack infrastructure.
[16:09] <dpm> i.e. they will be shipped as they come from upstream
[16:10] <dpm> First of all, I'll start with a bit of background for those of you not yet too all familiar with translations
[16:10] <dpm> Launchpad Translations
[16:10] <dpm> ----------------------
[16:10] <dpm> As you might know, in Ubuntu we use our very own translations tool: Launchpad Translations
[16:11] <dpm> Launchpad Translations allows distributed translation of our Operating System, by a large number of volunteer contributors, who work hard to ensure Ubuntu is well localized for everyone to use it in their own language.
[16:11] <dpm> You can see the Ubuntu translations here: https://translations.launchpad.net/ubuntu
[16:11] <dpm> (you can choose a distro series there, e.g. Natty to see the stats)
[16:12] <dpm> There you'll see a list of translatable applications and documentation, ordered by priority
[16:12] <dpm> Ubuntu is currently translated in more than 200 languages, with different levels of coverage, and can easily support more.
[16:12] <dpm> You can see the languages supported of in the last stable version of Ubuntu here:
[16:12] <dpm> http://people.ubuntu.com/~dpm/ubuntu-10.10-translation-stats.html
[16:12] <dpm> Many of those translations are done by upstream translation communities, and they also get imported into Launchpad during package uploads
[16:13] <dpm> The Ubuntu Translations Community
[16:13] <dpm> ---------------------------------
[16:13] <dpm> I won't dwell too much on this subject, as I think as a packager you might be more focused on the technical side of things.
[16:13] <dpm> Nevertheless, I'd like to add a few words about the Ubuntu Translations community, since I think, be it for the subject of this talk, or be it because we are all part of the bigger Ubuntu family, it is important for those working directly or indirectly with translations to know more about it.
[16:14] <dpm> Ubuntu Translators are a vast number of volunteers who organise themselves in translation teams, appointed to be responsible for the translation of a given language.
[16:14] <dpm> And they just rock.
[16:14] <dpm> You can see the full list of Ubuntu translation teams here:
[16:15] <dpm> https://translations.launchpad.net/+groups/ubuntu-translators
[16:15] <dpm> With your translation uploads you'll be enabling them to deliver Ubuntu in hundreds of languages, to many, many people
[16:15] <dpm> So time to feel proud now :)
[16:15] <dpm> Language Packs
[16:15] <dpm> --------------
[16:16] <dpm> btw, I guess there were no questions so far, if there is anything that was not clear, feel free to ask
[16:17] <dpm> In Ubuntu we ship all translations in dedicated .deb packages called language packs
[16:17] <dpm> Packages in main and restricted don't contain translations in the form of .mo files themselves
[16:18] <dpm> (if you are not familiar with them, .mo files are a type of binary files where translations are loaded from at runtime. The source for translations are textual .po files that get compiled into the final .mo files)
[16:18] <dpm> They are stripped during the build on the Launchpad buildds and put into the language-pack-* packages instead.
[16:19] <dpm> There is a set of language packs per language
[16:20] <dpm> They are divided roughly between generic translations and those which are used in a GNOME-based desktop and those used in a KDE-based desktop
[16:20] <dpm> We essentially make use of language packs to deliver translations independently from applications and thus we're able to ship regular translation updates throughout a distro series lifecycle.
[16:21] <dpm> Translations Import Workflow
[16:21] <dpm> ----------------------------
[16:22] <dpm> On a 1000 feet view, what happens when you do a package upload is that their translations get stripped by a tool called pkgbinarymangler, and they are put in a translations tarball containing a translations template (more on this later on) and the translations themselves.
[16:22] <dpm> This tarball is then fed to Soyuz, which ends up handing it to the translations imports queue. There, they will be eventually processed, approved and imported into Launchpad, at which point they will be exposed in the translations web interface ready for translators to do their job.
[16:24] <dpm> If you are interested in seeing what the imports queue looks like, you can see the translation uploads currently pending review here:
[16:24] <dpm> https://translations.launchpad.net/ubuntu/natty/+imports?field.filter_extension=pot&field.filter_status=NEEDS_REVIEW&start=75&batch=75
[16:24] <dpm> That's the global imports queue, but you can see it per package as well
[16:25] <dpm> https://translations.launchpad.net/ubuntu/natty/+source/gtkhtml3.14/+imports
[16:25] <dpm> There's an example ^
[16:26] <dpm> So now we come to the nitty gritty details... :)
[16:27] <dpm> let's try to answer some of the questions first...
[16:27] <ClassBot> monish001 asked: Are we taking here about the time of package installation - "stripped during the build on the Launchpad buildds and put into the language-pack-* packages instead."
[16:28] <dpm> No, the translations are stripped during the package build. By the time the package is installed, translations are no longer in the package
[16:28] <dpm> They will be in the language packs instead
[16:28] <ClassBot> chadadavis asked: when translations from different packages are merged into a language pack, how do you check that expressions like "File not found" are translated consistently between applications?
[16:29] <dpm> That's something that as a packager you cannot ensure, so you'll be relying on translators to work consistently
[16:29] <dpm> Launchpad also helps on that, giving global suggestions for translations which have the same original message in other projects
[16:30] <dpm> What I'm trying to say is that this is something translators are used to deal with
[16:30] <dpm> and translation consistency is part of their work
[16:30] <dpm> ok, let's move on then
[16:30] <dpm> Package Modifications for a better Ubuntu integration
[16:30] <dpm> -----------------------------------------------------
[16:31] <dpm> In order for translations to be imported to Launchpad and in order to direct translators to the translations page to start contributing straight away,
[16:31] <dpm> we make two main changes to the application at the packaging level:
[16:31] <dpm> * Creation of a POT file on build - We require the .deb package to produce a .pot translation template during the build, which will be imported into Launchpad and be used to expose translations for translators to do their work.
[16:31] <dpm> * Addition of the Launchpad integration library - We add some functionality to display some additional entries to the Help menu, to direct contributors to Launchpad to report bugs, submit translations and get help.
[16:32] <dpm> For those not familiar with the concept of a POT template:
[16:32] <dpm> It's a textual file with the .pot extension
[16:33] <dpm> and it's what Launchpad use as the source for exposing translations
[16:33] <dpm> all translations in all languages will be based on that template, which contains the translatable messages in English
[16:34] <dpm> It's generally built by gettext-based tools
[16:34] <dpm> which extract translatable messages from the code in an application
[16:34] <dpm> and put them in the textual .pot file
[16:34] <dpm> Generating POT templates
[16:34] <dpm> ~~~~~~~~~~~~~~~~~~~~~~~~
[16:34] <dpm> For pkgstriptranslations (in the pkgbinarymangler package) to do the job right and translations to be imported into Launchpad,
[16:35] <dpm> you should make sure that your package in main or restricted generates a POT translation template during the build.
[16:35] <dpm> It does not necessarily need to be shipped in the source or in the binary package.
[16:35] <dpm> Generating it during the build is good enough.
[16:35] <dpm> -> Note that if your package does not generate a POT template on build, its translations will remain as Blocked in the Launchpad Translations import queue and will not be imported
[16:35] <dpm> So it's important to get this right
[16:36] <dpm> The most common approaches are running either of the following in the debian/rules file:
[16:36] <dpm> * For packages using CDBS and automake:
[16:36] <dpm>   * You just need to include /usr/share/cdbs/1/rules/langpack.mk in debian/rules
[16:36] <dpm>   * If the package is a GNOME one, and you are using the gnome.mk CDBS class already, you should be good to go, since it already includes langpack.mk
[16:36] <dpm>   * If for some reason the POT template cannot be generated during the build, see the next points below.
[16:37] <dpm> * Other packages, using intltool usually require:
[16:37] <dpm>   * A call to intltool-update -p in debian/rules, or
[16:37] <dpm>   * a call to an already existing Makefile target to build the POT (this does exist quite often in fact).
[16:37] <dpm> * For packages which don't use intltool:
[16:38] <dpm>   * Need to get fixed individually:
[16:38] <dpm>   * Usually by adding a call to xgettext and po/POTFILES.in, or
[16:38] <dpm>   * Finding an already existing Makefile target. e.g. Use $(MAKE) -C po update-po instead of (cd po; make update-po; cd ..). Example in the debian/rules file from upower:
[16:38] <dpm>     common-post-build-arch::
[16:38] <dpm>             make -C po upower.pot
[16:38] <dpm> * Packages which use python-distutils-extra:
[16:39] <dpm>   * Template creation should happen automagically :)
[16:39] <dpm> oh, btw:
[16:40] <dpm> Gettext is the underlying and most widely used technology to enable translations of Open Source projects.
[16:40] <dpm> Intltool is a higher level tool that adds functionality to gettext by allowing the extraction of translatable strings from a variety of file formats.
[16:40] <dpm> Questions so far?
[16:41] <dpm> Is it clear that Ubuntu packages need to generate a .pot file during the build?
[16:41] <dpm> ok, next then
[16:41] <dpm> The Launchpad Integration Library
[16:41] <dpm> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[16:42] <dpm> Ubuntu applications use the Launchpad integration library to provide shortcuts to Launchpad to obtain help, report bugs and submit translations.
[16:42] <dpm> You can see it in action in every application's help menu, and it lives here:
[16:42] <dpm> https://launchpad.net/launchpad-integration
[16:42] <dpm> Note that this only works for Ubuntu packages available in the repositories. The Launchpad integration library does not work with PPAs or other projects hosted in Launchpad.
[16:42] <dpm> It has bindings for several languages. An example in Python:
[16:43] <dpm>         import LaunchpadIntegration
[16:43] <dpm>         LaunchpadIntegration.set_sourcepackagename('my_app')
[16:43] <dpm>         LaunchpadIntegration.add_items(self.builder.get_object('menu_help'), 0, False, True)
[16:43] <dpm> Unless the packaged application itself makes use of it already, you should add it as a patch.
[16:43] <dpm> If you want to see a couple of examples, these bugs will help you learning how you can add support for the Launchpad Integration Library to your package:
[16:44] <dpm> https://bugs.launchpad.net/bugs/436742
[16:44] <dpm> https://bugs.launchpad.net/bugs/508395
[16:44] <dpm> Verifying Packages
[16:44] <dpm> ------------------
[16:44] <dpm> Finally, here is a small recipe and some guidelines to help you test and optimize your packages, so that translation-related files get automatically imported seamlessly into Launchpad.
[16:44] <dpm> Generally, you will only need to do this once when setting up your package the first time, altough it can also be useful to debug import problems, for example
[16:49] <dpm> Testing the package locally
[16:49] <dpm> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
[16:49] <dpm> To test if your package conforms to the requirements of the import script in the Launchpad imports queue, you can do the following:
[16:50] <dpm> oops short disconnection :)
[16:50] <dpm> anyway, let's continue...
[16:50] <dpm> * Template name and domain: the filename of the template (.pot file) should be the same as what the expected translation domain is.
[16:51] <dpm> * Translation filenames: the actual translations (.po files) must have a filename of the format $LANGUAGECODE.po or $LOCALECODE.po (e.g. de.po, pt_BR.po, zh_TW.po)
[16:51] <ClassBot> There are 10 minutes remaining in the current session.
[16:51] <dpm> * Template and translations location: all translation-related files (the .pot template and its corresponding .po templates) must end up in the same (sub-)directory if possible.
[16:51] <dpm> * Obsolete translations: if there are .po files present in the package but no associated .pot template, please remove them, since they cannot be used without a .pot template.
[16:51] <dpm> * Valid POT template: please check if the .pot file has any meaningful content. Empty .pot files should best be removed and the package build rules be fixed.
[16:52] <dpm> * Templates generated by patches: if your package contains patches and those patches result into extra templates, like patches.pot, please merge those changes into the main template
[16:52] <dpm> Anyway, that was it for the session content,
[16:52] <dpm> I hope you found it useful
[16:53] <dpm> If you've got any questions related to the session or to translations in general, now feel free to ask! :-)
[16:53] <dpm> Q+A
[16:53] <dpm> ---
[16:53] <ClassBot> chadadavis asked: does the Launchpad integration provide any services for PPA packages? Since it's not officially supported/working on those?
[16:54] <dpm> As far as I know, it works only if there is a package available in the Ubuntu repositories, but I haven't tried it with PPAs
[16:55] <dpm> Any more questions?
[16:56] <ClassBot> There are 5 minutes remaining in the current session.
[16:58] <dpm> ok then, if there are no more questions we'll wrap up early
[16:58] <dpm> Thank you very much for your attention, I hope you enjoyed it and I hope to see you soon!
[16:59] <dpm> I'll now leave you in the able hands of Kaleo, who'll tell you all about Getting Started with Unity 2D!!
[16:59] <dpm> Enjoy!
[17:00] <dpm> it seems Kaleo is not here yet, and I see there is a question, so I'll try to answer that one in the meantime
[17:00] <ClassBot> monish001 asked: What if i want the enduser to choose the language?
[17:01] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/03/03/%23ubuntu-classroom.html following the conclusion of the session.
[17:02] <dholbach> Kaleo has been caught up in something else important. I'll keep you posted. Hold tight.
[17:05] <dholbach> thanks a lot Kaleo
[17:05] <dholbach> with just 5 minutes delay, I give you Florian "Kaleo" Boucault, one of the masterminds behind Unity 2D
[17:05] <dholbach> enjoy the session :)
[17:06] <Kaleo> Thanks people for joining in
[17:06] <Kaleo> I will give a brief overview of Unity 2D
[17:06] <Kaleo> And let you guys shoot questions my way
[17:07] <Kaleo> Unity 2D is essentially an implementation of the Unity user interface using Qt and QML
[17:07] <Kaleo> it reuses the same backend technologies used in Unity proper
[17:07] <Kaleo> libbamf, libdee, libunity, places, etc.
[17:08] <Kaleo> and intends to provide a UI that matches Unity proper as much as possible
[17:08] <Kaleo> The rationale behind Unity 2D is that we want to run on platforms that do not provide accelerated OpenGL
[17:08] <Kaleo> QUESTION: < jack002> what are those: libbamf, libdee, libunity, places,
[17:09] <Kaleo> BAMF provides application matching services: it tells you what applications are running on the desktop and informations about them
[17:09] <Kaleo> libdee is a way to publish lists of data over D-Bus
[17:10] <Kaleo> places are the providers of data for the dash (the dash is the thing that comes up when you click on the Ubuntu button in the top left corner)
[17:11] <Kaleo> For those who want to try out Unity 2D, you can find it in a PPA for Natty
[17:11] <Kaleo> We also provide a stable version for Maverick in the same PPA but it does not contain the latest features
[17:12] <Kaleo> < monish001> QUESTION: how to find it in a PPA for Natty?
[17:12] <Kaleo> https://launchpad.net/~unity-2d-team/+archive/unity-2d-daily
[17:13] <Kaleo> Unity 2D is the default interface for ARM based Ubuntu isos
[17:15] <Kaleo> For developers
[17:15] <Kaleo> and people interested contributing to it
[17:15] <Kaleo> we have a home on the ubuntu wiki
[17:15] <Kaleo> https://wiki.ubuntu.com/Unity2D
[17:16] <Kaleo> In terms of architecture
[17:16] <Kaleo> Unity 2D is divided into:
[17:16] <Kaleo> - window management (using metacity)
[17:16] <Kaleo> - a top panel
[17:16] <Kaleo> - an application launcher on the left
[17:16] <Kaleo> - the dash search interface
[17:16] <Kaleo> - a workspace switcher
[17:16] <Kaleo> they are all separate applications/processes
[17:17] <Kaleo> the code (hosted on launchpad with Bazaar) reflects that separation of components
[17:18] <Kaleo> each having its directory:
[17:18] <Kaleo> - panel
[17:18] <Kaleo> - launcher
[17:18] <Kaleo> - places (= dash)
[17:18] <Kaleo> - spread (= workspace switcher)
[17:18] <Kaleo> metacity being mostly upstream with around 3 small patches
[17:19] <Kaleo> 18:17 < chadadavis> The current natty seems to already have it in the default repositories.
[17:19] <Kaleo> That's correct
[17:19] <Kaleo> We pushed a recent version into Natty last week
[17:19] <Kaleo> but I really recommend the PPA
[17:19] <Kaleo> which contains critical bug fixes
[17:20] <Kaleo> 18:19 < abhinav> QUESTION: what languages can we use for development ? and can development be done on Maverick or Natty is absolutely necessary ?
[17:20] <Kaleo> Unity 2D is written in C++, QML and incidentally Javascript
[17:20] <Kaleo> C++ is used to create APIs that the user interface written in QML uses
[17:21] <Kaleo> QML is a declarative language to describe user interfaces; it is part of Qt
[17:21] <Kaleo> Development is now only done on Natty
[17:21] <Kaleo> We stopped developing on Maverick 2 weeks ago
[17:22] <Kaleo> Only backporting essential bug fixes
[17:22] <Kaleo> 18:20 < rsajdok> QUESTION: Can you describe how to run unity-2d-launcher with gdb and any function?
[17:22] <Kaleo> If you have Unity 2D installed from the PPA
[17:22] <Kaleo> and if Unity 2D is running
[17:22] <Kaleo> you can attach gdb to the unity-2d-launcher process
[17:23] <Kaleo>  ps aux | grep unity-2d-launcher will give you the PID of it
[17:23] <Kaleo> sudo gdb -pid PID_OF_LAUNCHER
[17:23] <Kaleo> will give you the gdb prompt
[17:23] <Kaleo> rsajdok: does it answer your question?
[17:26] <Kaleo> < jack002> QUESTION: Is there any plan to implement "windows tiling" like in Windows? I constantly need two programs opened like Firefox and Terminal.  Switching between them is annoying, resizing windows is time consuming...
[17:26] <Kaleo> There is no plan for windows tiling as far as I know
[17:26] <Kaleo> Sorry :(
[17:27] <Kaleo> < monish001> QUESTION: Could we expect projects from unity 2D for GSoC 2011?
[17:27] <Kaleo> We have not thought about it at all
[17:27] <Kaleo> It sounds like a great idea
[17:27] <Kaleo> I would love any help we can get :)
[17:30] <Kaleo> For people who want to chat about Unity 2D in general
[17:31] <Kaleo> we hang out on #ayatana on freenode
[17:31] <Kaleo> with the Unity proper people
[17:31] <Kaleo> agateau, oSoMoN and uriboni are the people to talk with
[17:31] <Kaleo> by uriboni I meant nerochiaro!
[17:35] <Kaleo> Ok, well
[17:35] <Kaleo> I feel we are running out of questions
[17:35] <Kaleo> Thank you all for the good questions and your time
[17:36] <Kaleo> I will stay here longer in case any question comes up
[17:36] <Kaleo> 18:35 < raki__> i would want to help too how can i start?
[17:36] <Kaleo> Start by installing it and trying it out
[17:40] <Kaleo> If you like it
[17:40] <Kaleo> I suggest you find something you would like to improve
[17:40] <Kaleo> And start from there
[17:40] <Kaleo> The wiki page is a great starting point
[17:40] <Kaleo> https://wiki.ubuntu.com/Unity2D
[17:40] <Kaleo> < monish001> QUESTION: do we have something called unity 3d also>
[17:40] <Kaleo> Unity 3D is a nickname for Unity proper, Unity you get by default in Ubuntu Natty
[17:41] <Kaleo> < Mkaysi> QUESTION: Is Unity2D going to be shopped with Natty, if someone uses computer, which can't run Unity 3D?
[17:41] <Kaleo> No, it will not be installed by default
[17:41] <Kaleo> It will not be on the CD
[17:41] <Kaleo> but it is installable via the packages very easily
[17:41] <Kaleo> < rsajdok> QUESTION: It started but I can not set backtrace on function launcherapplication::launch()
[17:41] <Kaleo> for that you will need to run from the source code
[17:41] <Kaleo> by that I mean
[17:41] <Kaleo> get the source code as indicated on the wiki page
[17:41] <Kaleo> compile it
[17:42] <Kaleo> and then start the launcher from there using gdb:
[17:42] <Kaleo> bzr branch lp:unity-2d
[17:42] <Kaleo> cd unity-2d
[17:42] <Kaleo> cmake . && make
[17:42] <Kaleo> gdb ./launcher/app/unity-2d-launcher
[17:42] <Kaleo> should do it
[17:52] <Kaleo> QUESTION:
[17:52] <Kaleo> < raki__> suppose if i want to develop something for unity then will i have to learn qml or c++ is enough?
[17:52] <Kaleo> < raki__> and what are you using javascript for?
[17:53] <Kaleo> if you are going to touch the user interface at all you will need to understand QML
[17:53] <Kaleo> Javascript is used inside QML
[17:53] <Kaleo> but no worries, QML is really as easy as it gets
[17:53] <Kaleo> the learning curve is not so high if you did UIs before
[17:56] <Kaleo>  monish001> QUESTION: could you provide any good tutorial for QML to get started?
[17:57] <Kaleo> the QML documentation is quite good
[17:57] <Kaleo> and there is an official tutorial
[17:57] <Kaleo> http://doc.qt.nokia.com/4.7-snapshot/qml-tutorial.html
[18:01] <rickspencer3> hello all
[18:02] <rickspencer3> I guess there's no intro or such, just dive in?
[18:02] <rickspencer3> so, I'm Rick Spencer
[18:02] <rickspencer3> I'm currently the director of engineering for Ubuntnu Engineering
[18:03] <rickspencer3> which basically means that I help the teams that create Ubuntu, Ubuntu Server, Ubuntu Arm editions, Ubuntu virtual images, etc...
[18:04] <rickspencer3> I'm happy to take questions on any and all topics
[18:04] <rickspencer3> please note that I don't typically have a lot of fine grained technical context on some things, so I may have to refer you to others for certain things
[18:04] <rickspencer3> I guess I'll just hang out and see if I get any questions?
[18:06] <ClassBot> mhall119 asked: What do you do as Engineering director?
[18:06] <rickspencer3> well, the Engineering Managers, and the our release manager and our technical architect all report to me
[18:07] <rickspencer3> so, there is a lot of my job that is typical people management
[18:07] <rickspencer3> making sure people have what they need to do their jobs
[18:07] <rickspencer3> signing off on holiday requests and expense reports, that kind of stuff
[18:08] <rickspencer3> also, the Engineering Managers (as well as Kate and Allison - release manager and technical architect) and I are all a management team
[18:08] <rickspencer3> so I have some leadership roles on that team
[18:08] <rickspencer3> for instance, I try to herd this particular herd of cats through planning UDS
[18:08] <rickspencer3> another part of the role is around product management
[18:09] <rickspencer3> this involves a lot of working with folks in the Ubuntu community, upstreams, Canonical, etc... to understand what they need or want to do with Ubuntu
[18:09] <rickspencer3> and I try to get everyone aligned to make those things happen
[18:12] <rickspencer3> Director of Engineering sounds like a role with a lot of Authority ... but it's not really that kind of job
[18:12] <rickspencer3> I do try to use the position to influence the project though in ways that I think are important
[18:15] <rickspencer3> for instance, in Natty I wanted to see more work to enable community contributions to land easily, so I worked with the community team and engineering managers to make sure that Canonical engineers could do that
[18:15] <rickspencer3> hmm ClassBot stopped working for me :/
[18:15] <rickspencer3> I'll go copy and paste method
[18:15] <rickspencer3> QUESTION: What challenges do you see in recruiting and keeping good people?
[18:15] <rickspencer3> well, for Ubuntu Engineering, their are a couple of challenges
[18:15] <rickspencer3> first, people do best when they are comforatable working in a transparent community minded manner
[18:15] <ClassBot> jsjgruber asked: What challenges do you see in recruiting and keeping good people?
[18:15] <rickspencer3> hmmm, freenode seems to be acting a bit wonky, please try to bear with me here
[18:16] <rickspencer3> so, finding engineers and managers who *like* to work on a community project can be difficult at times
[18:17] <rickspencer3> like, we may find someone who knows a technical space really well, but is not comforatable working in the open
[18:17] <rickspencer3> another aspect is that Canonical folks who get paid to work on Ubuntu work at home
[18:17] <rickspencer3> but then that is punctuated with travel
[18:17] <rickspencer3> personally, I love the lifestyle, but it's not for everyone
[18:18] <rickspencer3> also, for my part, I am very picky
[18:18] <rickspencer3> I really look for people who are "awesome" in multiple ways, so it can take longer to fill some roles
[18:19] <rickspencer3> finally, we work really hard, but have high standards in terms of being easy to work with
[18:19] <rickspencer3> so that's recruiting
[18:19] <rickspencer3> in terms of retaining, this has not been so challenging, we don't get too much turn over
[18:19] <rickspencer3> but when people do leave, they seem to become more like alumni than "ex-Canonical" folks
[18:19] <rickspencer3> so it seems that in general people depart on good terms
[18:20] <ClassBot> mhall119 asked: Do you have any specific goals for the Natty Cycle, and if so who are those going so far?
[18:20] <rickspencer3> hey, classbot is working again!
[18:20] <rickspencer3> anyway
[18:20] <rickspencer3> YES!
[18:20] <rickspencer3> hold on
[18:20] <rickspencer3> so, there are goals that are project wide, then my personal goals
[18:20] <rickspencer3> for the project wide goals, there was a lot of focus on the client
[18:20] <rickspencer3> we had 5 primary areas for Canonical folks to focus on on the client
[18:21] <rickspencer3> 1. Unity (natch)
[18:21] <rickspencer3> 2. 2d experience
[18:21] <rickspencer3> 3. software center
[18:21] <rickspencer3> 4. contributors (as previously mentioned)
[18:21] <rickspencer3> 5. testing
[18:21] <rickspencer3> this last bit is new to us
[18:21] <rickspencer3> for my perosnal goals, I wanted to see:
[18:21] <rickspencer3> 1. more nurturing of new contributors
[18:21] <rickspencer3> 2. more and better communication across the project
[18:22] <rickspencer3> 3. more systematic release process with better quality
[18:22] <rickspencer3> I think that #1 has gone pretty well thanks to the community team and the redoubled efforts of Canonical engineers AND Ubuntu engineers
[18:22] <rickspencer3> for instance, the sponsorship queue hit a low of only 14 items earlier this week
[18:23] <rickspencer3> #3 has gone well thanks to the efforts fo skaet and many others
[18:23] <rickspencer3> #2, I'm not to sure we made much progress there, it's a hard problem
[18:23] <ClassBot> chadadavis asked: Is there are hard line between Canonical employees and others, or does Canonical sponsor / support some developers part time as well?
[18:23] <rickspencer3> well ...
[18:24] <rickspencer3> to be a Canonical employee working in Ubuntu essential means that you get paid by Canonical to work in the Ubuntu community full time
[18:25] <rickspencer3> so, the community of Ubuntu developers is a super set of the developers that Canonical pays
[18:25] <rickspencer3> however, Canonical does, from time to time, outsource some development work on Ubuntu, but typically for projects for which Canonical is the usptream
[18:25] <rickspencer3> for example, to finish off parts of Unity
[18:25] <rickspencer3> normally, but not always, that will go through a company like Codethink, or Collabora
[18:26] <ClassBot> fisch246 asked: i realize this is really early... but has there been any talk on 11.10 yet? any ideas being passed around? care to share any?
[18:26] <rickspencer3> it is early, but not really really early
[18:27] <rickspencer3> allison (wendar) the Technical Architect on our team ... is going to work on getting all the great ideas from users and developers organized 11.10 UDS, and I think she's going to start that soon
[18:27] <rickspencer3> so at the product level, what will ubuntu *be*, nothing really specific comes to mind
[18:27] <rickspencer3> however, in terms of the project, I would like to see more nurturing of new contributors, but also
[18:28] <rickspencer3> revisit if existing core contributors are being sufficiently and properly supported
[18:28] <rickspencer3> also, the whole project wide communication part, I'd like us to take another whack at that
[18:29] <rickspencer3> one area that does occur to me for the project is how users actually get Ubuntu
[18:29] <rickspencer3> I'm wondering if having basically a set of CD ISOs should be the only way to get Ubuntu, or if there should be others
[18:29] <rickspencer3> like should we have a tool for creating a USB stick
[18:30] <rickspencer3> or maybe you we could use a net-install kind of thing
[18:30] <ClassBot> mhall119 asked: Last I heard, Canonical doesn't run a private UEC cloud for their own websites (or community-run sites like loco-directory), why is that and is there any plans to change?
[18:31] <rickspencer3> Canonical has an IS team that sets up all that infra structure and such
[18:31] <rickspencer3> I very much trust that they make good decisions about how best to support Ubuntu, so I never really looked into this
[18:31] <rickspencer3> so, I can't really answer your question
[18:31] <rickspencer3> if you PM me, I can work to connect you with someone who could though
[18:32] <ClassBot> gaberlunzie asked: when is Libre.fm going to get some love to make it into Banshee or other?
[18:32] <rickspencer3> sorry, I have no idea
[18:32] <rickspencer3> I would follow up with jasonwarned, he hangs out in #ubuntu-desktop
[18:32] <ClassBot> darkdevil666 asked: Any thought of implementing gnome shell 3 in later versions?
[18:32] <rickspencer3> sure
[18:32] <rickspencer3> I look at it in 2 ways
[18:33] <rickspencer3> first, Ubuntu should always offer the choices of the best in FOSS software
[18:33] <rickspencer3> so, when we are able, it should be trivial to install a gnome-shell session on Ubuntu
[18:33] <rickspencer3> secondly, if in the long run, gnome-shell turns out to be simply the best choice for users, we shouldn't hesitate to embrace it
[18:34] <rickspencer3> currently, I think we are on a good path with Unity
[18:34] <rickspencer3> but heck, who knows what things will be like a year from now, we shouldn't fear changing trajectory if it's the right thing for usres
[18:35] <ClassBot> fisch246 asked: do you know how canonical plans to implement Wayland, in the next several years?
[18:35] <rickspencer3> slowly and carefully :)
[18:35] <rickspencer3> seriously, between bryce, RAOF, tselliot, and others, Ubuntu has a lot of graphics stack expertise
[18:36] <rickspencer3> then there is the whole xorg-edgers community as well
[18:36] <rickspencer3> so, a really large group of engineers who know this stuff up and down, backward and forward
[18:36] <rickspencer3> I would expect that the first implementations that use wayland would be hardware specific, but that's a guess on my part
[18:37] <rickspencer3> sorry I don't have more specifics there, but Ubuntu xorg community is pretty easy to find and discuss with
[18:37] <ClassBot> mhall119 asked: Is Ubuntu going to target any other formfactors, tablets or phones or tabletop devices?
[18:37] <rickspencer3> currently, I don't know of any specific plans for *Canonical* to do that
[18:38] <rickspencer3> however, I understand that other companies are already doing this
[18:38] <rickspencer3> I think that with Unity and the multitouch efforts, Ubuntu makes a good platform for this, though
[18:38] <rickspencer3> I don't know of any community effort to make a derivative atm
[18:39] <rickspencer3> I expect that some of the work that Linaro is doing in terms of supporting ARM architectures will really really help with this if someone wanted to go down that route
[18:39] <ClassBot> darkdevil666 asked: We already have Ubuntu for netbook, for Tablet PCs with touch interface. I'd really want to see Ubuntu being operated by voice commands. Are there any teams working on it. I'd like to be a part of it
[18:39] <rickspencer3> hmmm, none that I know of
[18:39] <rickspencer3> darkdevil666, this sounds like a great opportunity for you to provide some leadership in our community if this is an area that you are passionate about
[18:40] <rickspencer3> I bet there is technology out there that could be leveraged for this
[18:40] <rickspencer3> and maybe you could be the instrument to make this happen
[18:40] <rickspencer3> if you PM me I can try to connnect you with resources to get you started
[18:41] <rickspencer3> ok, there are no questions in the queue, but there was a follow up question about USB creator
[18:42] <rickspencer3> so, we do have that, and it's good
[18:42] <rickspencer3> but I was thinking, what if you were using a proprietary operating system, and there was some Free software that you could install ...
[18:42] <rickspencer3> and this Free software would download Ubuntu and create a Ubuntu USB stick for you
[18:42] <rickspencer3> also ..
[18:42] <rickspencer3> and this is pie in the sky ...
[18:43] <rickspencer3> what if you could go to a web site or run a program, and point and click at feautres that you want, and have it create a USB stick for you, like that
[18:49] <rickspencer3> maybe even in the language(s) that you want
[18:49] <rickspencer3> that kind of thing
[18:49] <ClassBot> abhinav asked: I don't know if it's stupid to ask. But I started with fixing bugs after the Ist day of UDW. Now, I am confused that if Feature Freeze has been called then will my patches be accepted or reviewed ?
[18:49] <rickspencer3> they should all be reviewed
[18:49] <rickspencer3> if they are bug fixes, well that's great!
[18:50] <rickspencer3> if they are good fixes they will be accepted
[18:50] <rickspencer3> however, if your patches add new features, they will not *automatically* be accepted
[18:50] <rickspencer3> new features require a Feature Freeze Exception
[18:50] <rickspencer3> so, the point of Feature Freeze is to say "from now on, focus 100% on fixing bugs"
[18:50] <rickspencer3> so keep fixing those bugs, they will be most awesomely appreciated now
[18:50] <rickspencer3> :)
[18:50] <rickspencer3> hmm freenode seems to be lagging for me again
[18:50] <ClassBot> gaberlunzie asked: what is the current opinion and status among engineers on pulseaudio integration?
[18:50] <rickspencer3> I can speak for myself here
[18:50] <rickspencer3> first, I know the road was a bit rocky
[18:50] <rickspencer3> but pulseaudio was an awesome contribution to free software
[18:51] <rickspencer3> I am very grateful to the pulseaudio upstream
[18:51] <ClassBot> There are 10 minutes remaining in the current session.
[18:51] <rickspencer3> in terms of integration, well I think it's going well now
[18:51] <rickspencer3> pulse itself is stable and we've had several cycles to accumulate quirks and such
[18:52] <rickspencer3> fwiw, it works well for me, and I definately field fewer complaints about it
[19:01] <stgraber> Hey everyone !
[19:02]  * stgraber hopes the bot won't die and freenode isn't as laggy as it was for the previous session ...
[19:03] <stgraber> ok, so let's start
[19:03] <stgraber> Hi everyone, I'm Stéphane Graber, an Application Review Board member.
[19:03] <stgraber> In this session, I plan on quickly explaining what the ARB does and how you can get your app on extras.ubuntu.com
[19:03] <stgraber> Please feel free to ask any question in #ubuntu-classroom-chat, prefixing them with "QUESTION: " so the bot gets them.
[19:04] <stgraber> first a quick intro on what the ARB does
[19:04] <stgraber> The Application Review Board is responsible on reviewing applications to be included in extras.ubuntu.com.
[19:04] <stgraber> These apps are extra application that are usually quite small and simple and weren't present in the archive at the time of the release.
[19:05] <stgraber> This process is mostly meant for upstream developers of a small app who wants it available in Ubuntu.
[19:05] <stgraber> Apps must be Open Source and available under an OSI approved license.
[19:05] <stgraber> These extra apps aren't supported or maintained by the Ubuntu community, it's the application author's responsability to take care of bug fixes and security updates.
[19:06] <stgraber> If for some reason this doesn't happen, the app will be removed from the repository.
[19:07] <stgraber> For new version of a package that already existed in the archive at the time of the release, the backport process should be used instead.
[19:07] <stgraber> An ARB member is assigned to each proposed app and will review it and comment on Launchpad
[19:07] <stgraber> When they are confident the app is in a good shape, it'll be submitted for vote at our next IRC meeting (every two weeks).
[19:07] <stgraber> So far for maverick, we only have one app on extras.ubuntu.com, suspended-sentence by tumbleweed
[19:08] <stgraber> we have another one that got approved and will be in extras.ubuntu.com as soon as the screenshot branch will be processed by Canonical IS
[19:08] <stgraber> this one being a news rss ticker
[19:08] <stgraber> any question so far ?
[19:10] <stgraber> ok, seems like there's none :)
[19:10] <stgraber> so I'll now quickly go through the process of getting a new app on extras.ubuntu.com
[19:11] <stgraber> First thing if you want to get your app in the extra repository is to make sure it meets our criteria.
[19:11] <stgraber> It needs to be a standalone app, run as the user, not ship with any kind of daemon and can't depend on anything that's in extra.
[19:11] <stgraber> You can't submit an app that was already in the distro at release time, even if it's a new major version.
[19:12] <stgraber> The basic process is:
[19:12] <stgraber> 1) Release your app and learn how to package it
[19:13] <stgraber> 2) Review https://wiki.ubuntu.com/AppReviews
[19:13] <stgraber> 3) Update the packaging accordingly and upload your app to your PPA
[19:14] <stgraber> 4) File a bug at https://bugs.launchpad.net/ubuntu-app-review-board/
[19:14] <stgraber> 5) Wait for an ARB member to comment in the bug
[19:14] <stgraber> 6) Fix anything that needs to be fixed, updating the version in your PPA
[19:15] <stgraber> 7) When the ARB member is happy with your packaging, the app will be sumitted for vote at our next meeting (you don't necessarily need to be present)
[19:15] <stgraber> 8) If it gets approved, an ARB member will ask for the screenshot branch to be merged and published, as soon as it's done (can take a while), your package will be uploaded
[19:16] <stgraber> and that's about it
[19:16] <stgraber> so far the most issues we got were with getting everything to stay in /opt except the .desktop files
[19:17] <stgraber> also, the 8th step can take quite a while (up to a month) due to the process not being automated yet, we hope to have that improved quite soon
[19:18] <ClassBot> fisch246 asked: if i was releasing a game in the extras repo, that was written in python 3.1, would that mean i couldn't ship it with python 3.1?
[19:19] <stgraber> if python 3.1 doesn't exist in the target release and you need it for your app then indeed you won't be able to get it into extra
[19:19] <ClassBot> mhall119 asked: will packages in extra be automatically rolled into universe (or multiverse) for the next release?
[19:20] <stgraber> no, at least not automatically
[19:20] <stgraber> we still strongly recommend whoever uploaded something to extras to get the package in universe for the next release or even more, into Debian and synced to Ubuntu
[19:21] <stgraber> packages in extras won't be copied to the next release either
[19:21] <stgraber> so it's really a good idea to get them into universe so you don't have to go through the ARB process again
[19:22] <stgraber> and so your app eventually gets into Debian and can benefit from team maintenance, the bug tracking system and more generally a larger user base
[19:22] <ClassBot> titeuf_87_ asked: when a new version of Ubuntu gets released, will all the apps need to be approved again, or that's not needed anymore?
[19:23] <stgraber> all the post-release apps will need to be reviewed again, though hopefully they'll have been pushed to universe by then and won't need to go through the post-release process again
[19:23] <ClassBot> mhall119 asked: So to stay in extra, you need to re-apply on each Ubuntu version?
[19:23] <stgraber> that's correct, though we definitely don't recommend doing that ;)
[19:24] <ClassBot> barcc1 asked: Is it possible to get plugins (e.g. for gedit) in extra?
[19:25] <stgraber> good question, we didn't get any plugin in our queue yet, but I wouldn't think that'd work
[19:25] <stgraber> as the plugin would need to be in /opt and it's not likely any application like gedit would look in there for plugins
[19:26] <stgraber> also, the current criteria says "executable applications" which probably wouldn't apply to plugins
[19:26] <stgraber> but there was discussion of being able to ship unity places or similar plugins in the extras repository with unity being updated to look in /opt (not sure if that's going to happen any time soon though)
[19:29] <stgraber> the current queue for post-release packages is available here: https://bugs.launchpad.net/ubuntu-app-review-board/+bugs
[19:30] <stgraber> and most of the documentation on how to get an app in the repository is here: https://wiki.ubuntu.com/AppReviews
[19:30] <stgraber> any other question ?
[19:31] <ClassBot> seidos asked: how is it checked that an app is secure?
[19:32] <stgraber> we usually do a full code review, if the code is considered too complex, we'll decline the app
[19:32] <stgraber> we also make sure the app won't listen on the network and won't start a daemon
[19:33] <stgraber> I also tend to run the app in a sandbox (using arkose) to check what the app reads/writes on the disk as well as network access
[19:34] <ClassBot> seidos asked: why must "question:" be capitalized?
[19:34] <stgraber> as I got your question twice, I don't think the bot is case sensitive ;)
[19:34] <ClassBot> seidos asked: do you work for ubuntu or canonical?
[19:35] <stgraber> I work on Ubuntu and Edubuntu for Revolution Linux in Sherbrooke, QC
[19:35] <ClassBot> seidos asked: which is the most secure version of ubuntu?  lts?  newest?
[19:36] <stgraber> any supported release is usually quite secure as security updates are checked for all supported versions and pushed usually at the same time to all of them too
[19:37] <stgraber> I usually always run LTS releases on the servers to get a longer life cycle
[19:37] <stgraber> and the latest stable release for desktop computers
[19:37] <stgraber> and usually whatever is the current dev release on my laptop, though running the current dev version can be dangerous both from a stability than a security point of view ;)
[19:38] <ClassBot> titeuf_87_ asked: should bugs for extra apps be submitted in launchpad? Or directly to the author of the app?
[19:38] <stgraber> packages in extras.ubuntu.com don't have a https://bugs.launchpad.net/ubuntu/+source/<source package name/+bugs page so it's not possible to report bug against them
[19:39] <stgraber> it's usually best to contact the author/packager of the app and if it's a serious security issue and you don't get a reply, then contact the ARB directly
[19:39] <stgraber> so we can try to contact the author again or even remove the app from extras.ubuntu.com if needed
[19:40] <ClassBot> seidos asked: i have an idea for a "medicine app" who should i get in touch with?
[19:40] <stgraber> if it's an existing app you want to make available, then getting familiar with packaging and the post-release app process is probably what you should do
[19:41] <stgraber> if it's for a new non-existing app, then I honestely don't know much about the "medicine app" community to answer that question
[19:41] <stgraber> but it's probably best to contact someone who's already involved in that community to find other people to work with and start developping it
[19:43] <ClassBot> seidos asked: how can i find that community?  or would i have to create it?
[19:44] <stgraber> I'd suggest looking for similar apps in the archive, check who's writting them and try to contact one of the upstreams
[19:44] <stgraber> that's probably the best way of getting introduced to people doing something similar to what you want to do
[19:47] <ClassBot> highvoltage asked: would the ARB be open to infrastructure on Ubuntu in the future that would allow Android apps in the extras repository?
[19:49] <stgraber> interesting question
[19:49] <stgraber> we discussed it a bit at the last UDS and it's something I'd personaly be fine with
[19:50] <stgraber> though we'd probably find some way of allowing all Android apps to run then rather than having to review them one by one
[19:51] <stgraber> (making sure they're sandboxed properly so even evil/badly coded ones can't harm your system)
[19:51] <ClassBot> There are 10 minutes remaining in the current session.
[19:56] <ClassBot> There are 5 minutes remaining in the current session.
[19:56] <stgraber> ok, as there's no more question, now is time for a 5 minutes break before bdrung starts talking about the good stuff in ubuntu-dev-tools
[19:56] <stgraber> thanks everyone for attending
[20:01] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/03/03/%23ubuntu-classroom.html following the conclusion of the session.
[20:01] <bdrung> hi everyone!
[20:01] <bdrung> i am Benjamin Drung, a Debian & Ubuntu-Developer (and a DMB member).
[20:02] <bdrung> In this session I talk about good stuff in ubuntu-dev-tools.
[20:03] <bdrung> I will talk about some old tools, some improved, and some quite new ones.
[20:03] <bdrung> Please feel free to ask any question in #ubuntu-classroom-chat, prefixing them with "QUESTION: " so the bot gets them.
[20:04] <bdrung> ubuntu-dev-tools is a package that contains scripts and tools that are used by Ubuntu developers. You can install it with "sudo apt-get install ubuntu-dev-tools".
[20:06] <bdrung> Some tools are quite new and you need to run Ubuntu 11.04 (natty) or grab the latest version from https://code.launchpad.net/~udt-developers/+archive/daily (sorry, only maverick and natty)
[20:06] <bdrung> Let's start with the first set: pull-*-source
[20:07] <bdrung> There are multiple ways to grab the source package.
[20:08] <bdrung> You can either run "apt-get source <package>", but that's works only if you have the correct distros in your sources.list.
[20:09] <bdrung> Especially if you want to pull the package from an other series or from Debian, it get's complicated.
[20:09] <bdrung> For that reason we have the pull-*-source tool: pull-lp-source downloads a source package for a given Ubuntu series. pull-debian-source downloads a source package for a given Debian series.
[20:10] <bdrung> "pull-lp-source vlc lucid" would download the latest source package version of vlc in Ubuntu 10.04 (lucid).
[20:11] <bdrung> "pull-lp-source vlc" would pull the source package from the current Ubuntu development version (natty).
[20:12] <bdrung> "pull-debian-source vlc" would pull the source package from Debian unstable.
[20:12] <bdrung> "pull-debian-source vlc stable" would pull the source package from Debian stable and so on.
[20:12] <bdrung> Questions?
[20:13] <bdrung> The next tool I want to present is suspicious-source.
[20:13] <bdrung> Open a terminal, navigate into an extracted source package and run "suspicious-source" there.
[20:14] <bdrung> The tool will check the mimetype and extension of every file in the directory (and subdirectories) and report the ones that are not known as source files.
[20:15] <bdrung> It's good for finding pre-compiled or generated files in a source package.
[20:16] <bdrung> I recommend to use for a first check if you package a new software.
[20:16] <bdrung> chadadavis asked: how is this different than branching from bzr?
[20:17] <bdrung> bzr branch and pull-*-source have the same purpose, except bzr gives you a branch and pull-*-source will give you only the tarballs.
[20:18] <bdrung> pull-*-source is the old way, bzr branch is the UDD way
[20:18] <bdrung> Next tools: wrap-and-sort
[20:19] <bdrung> That tools works on the files in debian/ - especially on the control file
[20:19] <bdrung> It work on nearly every kind of list.
[20:20] <bdrung> In debian/control you have a list in the Build-Depends, Depends, Recommends, Suggests, ... fields.
[20:22] <bdrung> These lists are sometimes long and written in one line.
[20:22] <bdrung> There are two problems with such lists:
[20:22] <bdrung> 1. You may have one item twice in the list
[20:23] <bdrung> 2. Changing one item in the list changes the whole line and it's hard to read a diff then (especially when we merge packages from Debian)
[20:24] <bdrung> These points can be addressed if we wrap the list (one item per line; point 2) and sort the list (point 1)
[20:26] <bdrung> Just run "wrap-and-sort" and it will sort these lists. Run "wrap-and-sort -v" to see which files are touched.
[20:26] <bdrung> One example: Running wrap-and-sort in inkscape gives you these changes: http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=wrap-lines.patch;att=1;bug=576357
[20:26] <bdrung> Questions?
[20:27] <bdrung> Not everyone likes the kind of indentation. Run "wrap-and-sort --short-indent" if you want only one space for indentation.
[20:28] <bdrung> Next tools: sponsor-patch
[20:28] <bdrung> This tool is especially interesting for Ubuntu developers with upload right, who want to sponsor someone else.
[20:29] <bdrung> Let's look at http://reports.qa.ubuntu.com/reports/sponsoring/ and pick one item.
[20:29] <bdrung> For example bug #728438.
[20:30] <bdrung> Let's run "sponsor-patch -s 728438"
[20:30] <bdrung> "-s" does the same as "-b -u ubuntu"
[20:31] <bdrung> Here's what the tools does: It pulls the patch from the bug, it download the corresponding source tarball, applies the patch, created the source tarball.
[20:32] <bdrung> Before it created the new source tarball, it will run "update-maintainer" and update the timestamp of the changelog entry.
[20:32] <bdrung> It simplifies the bunch of commands that I would have to type otherwise.
[20:33] <bdrung> But it does even more: It makes some sanity checks: Does the changelog automatically close the sponsorship bug?
[20:33] <bdrung> Is the version number greater than the current version in the archive?
[20:34] <bdrung> Is the changelog target valid? E.g. "maverick" is wrong, it must be "maverick-proposed".
[20:35] <bdrung> Then the package will be built (if you have specified -s or -b) with your builder (supported are pbuilder, pbuilder-dist, and sbuild)
[20:36] <bdrung> One correctly built, it will give you the debdiff, the lintian run, and the build log.
[20:36] <bdrung> Once you checked them manually, you can upload it.
[20:37] <bdrung> If something went wrong or a sanity check failed, you will be asked if you want to fix it. If you say yes, you will get a shell, do your changes, exit with 0, and then it will try again.
[20:38] <bdrung> sponsor-patch works with debdiff, merge proposals (if the have a corresponding bug).
[20:39] <bdrung> If you feed sponsor-patch a normal patch file, it will apply it with add-patch (another tool in ubuntu-dev-tools). Then you have to write the changelog yourself.
[20:39] <bdrung> You can use sponsor-patch to upload the package to a PPA.
[20:39] <bdrung> Questions?
[20:40] <bdrung> Next tool: backportpackage
[20:40] <bdrung> This tool can be used to backport a package from a later version to an older version.
[20:42] <ClassBot> MadCow108 asked: sponsor-patch does not support cowbuilder? is it planned to add it?
[20:43] <bdrung> I have no plans to add it. Please file a bug report.
[20:44] <bdrung> Bug report can be files either with "ubuntu-bug ubuntu-dev-tools" or on https://bugs.launchpad.net/ubuntu/+source/ubuntu-dev-tools
[20:45] <bdrung> We have a internal interface for the builder. Adding cowbuilder support shouldn't be that hard. We just need someone who tests it. ;)
[20:45] <bdrung> backportpackage and sponsor-patch use the same builder backend and therefore support the same types of builders.
[20:46] <bdrung> backportpackage can build the package with your builder (pbuilder, pbuilder-dist, or sbuild)
[20:47] <bdrung> It can upload the backported package to an PPA or it can do both.
[20:47] <bdrung> Let's give an example: "backportpackage -u ppa:bdrung/backports -b ubuntu-dev-tools"
[20:48] <bdrung> "-u ppa:bdrung/backports" says that backportpackage should upload the backported version to my PPA called backports.
[20:48] <bdrung> "-b" tells it to build the package before the upload.
[20:48] <bdrung> and "ubuntu-dev-tools" is the package to upload.
[20:49] <bdrung> if not specified, the source series is the current development series (natty) and the target series is the running series (determined by lsb-release)
[20:50] <bdrung> If you look at https://launchpad.net/~bdrung/+archive/backports/+packages you will see ubuntu-dev-tools - 0.119~maverick1~ppa1 there.
[20:51] <ClassBot> There are 10 minutes remaining in the current session.
[20:51] <bdrung> You can feed every .dsc file into backportpackage.
[20:52] <bdrung> For example I can backport adblock-plus from Debian unstable:
[20:53] <bdrung> backportpackage -u ppa:mozillateam/xul-ext http://cdn.debian.net/debian/pool/main/a/adblock-plus/adblock-plus_1.3.3-3.dsc
[20:53] <bdrung> Questions?
[20:53] <bdrung> Most of the new tools presented here, were written by tumbleweed and me.
[20:54] <bdrung> Feel free to poke us if you have questions about the script internals.
[20:55] <bdrung> If you were stimulated by this talk, you can look at the package description so see which script are also available.
[20:56] <ClassBot> There are 5 minutes remaining in the current session.
[20:56] <bdrung> Every script in ubuntu-dev-tools has a man page. Some of them give a detailed description what they do, what parameters they take, and some examples.
[20:56] <bdrung> Thanks everyone for attending.
[20:57] <bdrung> You can listen to^W^W read more talks tomorrow.
[21:01] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/03/03/%23ubuntu-classroom.html
[21:59] <seidos> right view, right intention, right speech, right action, right livelihood, right effort, right mindfulness, right concentration