/srv/irclogs.ubuntu.com/2009/01/23/#ubuntu-classroom.txt

Matr|Xhello i need help in ubntu plz01:03
jmarsden|workMatr|X: Ask in #ubuntu, not in here, #ubuntu-classroom is for classes at specific times.01:10
Matr|Xthx01:11
Matr|Xsorry01:11
LucyI'm having a bit of trouble getting the right performance from all but one SATA drives. instead of around 110 mb/s with hdparm -t i get around 50-60 mb/s . Help anyone ?01:15
istazAsk in #ubuntu, not in here, #ubuntu-classroom is for classes at specific times. (c) jmarsden|work01:15
=== fabrice_sp_ is now known as fabrice_sp
somaunni'm looking for someone who have knowledges of sed07:02
techno_freaksomaunn, #bash07:21
somaunntechno_freak: thank you07:47
=== asac_ is now known as asac
=== lan3y is now known as Laney
CrownAmbassadorDoes anyone have the getting started talk from Monday? It is not on http://wiki.ubuntu.com/MeetingNotes13:28
istazCrownAmbassador: the one on this channel?13:29
CrownAmbassadoristaz: yeah13:30
istaz(the link you gave doesnt exist)13:30
istazCrownAmbassador: I can send you my log if you want13:30
MarkoKaaThere it is https://wiki.ubuntu.com/MeetingLogs/devweek0901/GettingStartedEN13:30
CrownAmbassadoristaz: oops! Should be MeetingLogs13:30
CrownAmbassadorMarkoKaa: Thanks. Seems like the link to it on the https://wiki.ubuntu.com/MeetingLogs does not work.13:32
MarkoKaaand also you can go to the logs by clicking the topic on https://wiki.ubuntu.com/UbuntuDeveloperWeek13:32
CrownAmbassadorMarkoKaa: Thanks.13:34
MarkoKaaNo problem13:34
CrownAmbassadorDoes anyone know when Pitti will be doing his deleted talk?13:36
Ape3000I just packaged my first package. It's 0.6.5 version of typespeed. There is 0.6.4 available on the Ubuntu repos.15:05
Ape3000https://launchpad.net/~ape3000/+archive15:05
Ape3000It says that it needs building.15:05
james_wcool :-)15:06
james_wdo you know the process for getting it updated in jaunty?15:06
Ape3000Not perfectly15:07
james_wk15:08
Ape3000I think I could send to Debian, since it has also only 0.6.415:08
james_wis there already a bug open on the package about there being a new upstream release?15:08
james_wthat would be great15:08
Ape3000I didn't find any bug reports15:08
james_wok, the first step is to file one15:09
Ape3000I just wanted to practice building and I knew that the version of typespeed isn't the newest upstream version.15:09
james_whttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=499133 is the Debian bug about it15:09
james_wso you can link the reports in launchpad once you have filed the Ubuntu bug15:10
Ape3000So what is the package where I file the bug?15:12
Ape3000Is it the typespeed source package or Ubuntu?15:12
james_wthe former15:12
james_whttps://bugs.launchpad.net/ubuntu/+source/typespeed/+filebug15:13
Ape3000https://bugs.launchpad.net/ubuntu/+source/typespeed/+bug/32048415:16
Ape3000So how do I link the debian bug?15:16
james_wApe3000: click on "Also affects Distribution", select Debian, and enter the url I gave15:22
dholbachHELLO EVERYBODY!15:59
zerwasHi :)15:59
dholbachWho's here for the last day of the week of awesome?15:59
dholbachWho's excited? :-)15:59
dholbachCOME ON! :)15:59
* liw cracks knuckles15:59
zerwasi hope all 144 here are!15:59
dholbachliw: seems like you have a bit of a shy audience today :-)16:00
dholbachOk... welcome everybody!16:00
dholbachWe have the amazing Lars Wirzenius here today and I promise he won't bite16:00
* weboide is ready for it!16:00
dholbachinstead, he'll talk about the fantastic things you can do with piuparts and I hope you enjoy the ride16:00
dholbachquestions, as always, go into #ubuntu-classroom-chat please16:01
dholbachand please prefix them with QUESTION:16:01
liwif someone wants to volunteer to paste questions to this channel, that would be fabulous!16:01
dholbachie: QUESTION: liw: why don't Finns hug?16:01
dholbachenjoy the session, liw: the floor is yours :)16:01
liwdholbach, thank you, thank you16:01
dholbach:-)(16:02
liwso, I'm going to talk about piuparts. Questions are welcome at any time. I've structured this into sections: What is piuparts; basic usage; interpreting the results; speeding it up; testing for newer releasees; gotchas16:03
liwif I'm going too fast, or too slow, don't hesitate to tell me16:03
liwfirst section: What is piuparts?16:03
liwPiuparts is a tool to test that a .deb package can be installed and removed, and installed, upgraded, and removed.16:03
liwIt is primarily meant for people who maintain and upload packages.16:04
liwIt works by constructing a chroot with a minimal Debian or Ubuntu installation, and then installing the package being tested into the chroot. It also installs the dependencies.16:04
liwAfter this is done, it removes and then purges the package, and any other packages that got installed.16:04
liwFinally, it compares the state of the chroot before the package and its dependencies were installed, and after they got purged.16:04
liwIt checks that all files are still there, and haven't been changed, and that there are no new files.16:04
liwObviously, some things will always change, such as log files. Piuparts ignores those.16:04
liwany questions so far? anyone getting this at all?16:04
zerwas<weboide> QUESTION: is this like pbuilder ?16:05
liwzerwas, thanks (I was just fighting my irc client to do that :)16:05
liwweboide, pbuilder uses a chroot to build a package in a clean environment; piuparts uses a chroot to test that a package installs into a clean environment, so there are similarities, but they are solving different problems with chroots16:06
liwI will get back to pbuilder in a bit16:07
liwany other questions? if not, I'll continue on to the next section16:07
liwsecond section: Basic usage16:07
liwThe very basic way of using piuparts is as follows:16:07
liwpiuparts foo.deb16:08
liwwhere foo.deb is a .deb package you have built.16:08
liwNote that this can take a long time, and can produce quite a lot of output.16:08
liwYou probably don't want to run the command just now.16:08
liwBecause piuparts builds a chroot, it must run as root.16:08
liwPrefix the command with sudo. (But not yet)16:08
liwTo avoid people accidentally copypasting commands when they shouldn't, I'm not prefixing it in examples.16:08
liwThe above command will run the install/remove/purge test.16:09
liwIf the package is already in the archive, it will also test that the package can be upgraded from the archive to the .deb you give.16:09
liwThe other way of running piuparts is as follows:16:09
liwpiuparts -a foo16:09
liwHere foo is the name of a package, not of a .deb.16:09
liwPiuparts will fetch the package from the archive and test it.16:09
liwThis will, obviously, not test upgrades since there is no newer package.16:09
liwIf you feel like being evil, you can spend your time worse than running piuparts on all sorts of random packages and filing bugs for serious problems.16:09
liwany questions so far?16:10
liwcontinuin...16:10
liwYou can also test upgrading from release to release:16:10
liwpiuparts -a -d dapper -d hardy -d intrepid -d jaunty foo16:10
liwThis will take even longer.16:10
liwit will first construct a chroot with dapper, install the package into that, then upgrade the whole chroot to hardy, then to intrepid, then to jaunty, and then remove and purge the package and its dependencies16:11
zerwas<ia> QUESTION: can piuparts use pbuilder's tgz chroot images (so to don't create for each tool each set of chroots)?16:11
liwia, yes; I'll show an example in a while16:11
zerwas<weboide> QUESTION: what version of piuparts should be we use? repos version? dev version?16:12
liwweboide, you should use the version in current development version of Ubuntu, by preference, unless that breaks16:12
liwpiuparts development has not been very fast in the past couple of years, so there are not a lot of versions to choose from that are easily available16:13
liwthird section: Interpreting the results16:14
liwPiuparts outputs quite a lot of text when it runs.16:14
liwThis is because when I was developing it, it was quite useful to me to see what was going on and figure out when things broke.16:14
liwI never got around to fixing things so that it was nice to use for other people.16:14
liw(sorry)16:14
liwSince the output can be pretty large, up to several hundred kilobytes, it is best to capture it in a file:16:14
liwpiuparts -l foo.log foo.deb16:14
liwThe output will go to the named file, and also to the screen.16:14
liwEvery line of output piuparts outputs is prefixed with a relative timestamp (minutes and seconds since piuparts started), and a log level: DUMP, DEBUG, INFO, WARNING, ERROR, FATAL.16:14
liwDUMP and DEBUG you can mostly ignore; unfortunately there is no switch to let you do that at the moment.16:15
liw(sorry)16:15
liwThe useful stuff is in INFO, and in ERROR if it is there.16:15
liwTherefore, the way to read a piuparts log file is to grep for INFO and ERROR.16:15
liwThen, if those don't make any sense, read DUMP and DEBUG as well.16:15
liwWhen piuparts finishes, it outputs one of two things: either a PASS or a FAIL message.16:15
liwThey look like these:16:15
liw2m11.0s INFO: PASS: All tests.16:15
liw5m33.8s ERROR: Broken symlinks:16:15
liwObviously these were from different runs. You only get one of them per run.16:15
liwI should pastebin some actual log output, just a minute.16:16
liwhttp://paste.ubuntu.com/108624/ and http://paste.ubuntu.com/108625/ are two snippets of an actual log file16:17
liwjust to give you a taste of what they look like. the beginning and the end.16:18
zerwas<Ape3000> QUESTION: How much time does the basic test usually take?16:18
liwApe3000, the second pastebin answers that for the hello package: almost 7 minutes (but that was running inside kvm)16:19
liwany questions about interpreting those log files? they're long, but hopefully not too obscure16:19
liwnext section (is this 12765 already?): Speeding it up16:20
liw(everyone's favorite topic)16:20
liwIt can take a long time to construct the chroot.16:20
liwSince most package maintainers use pbuilder, and it constructs a chroot too, piuparts provides the --pbuilder (-p) option to use the pbuiler tarball to create the chroot.16:21
liwThis makes things much faster.16:21
zerwas<Laney> QUESTION: Does the chroot have to be created every time?16:21
liwOn the server I used to use to run piuparts on all packages in Debian, a couple of years ago, piuparts took only a few seconds per typical small package, when using a pre-built chroot tarball.16:21
liwLaney, so yeah, some kind of chroot gets created every time. When it is created by unpacking a tarball, it is pretty fast, just a couple of seconds16:21
liwexcept on a netbook, perhaps16:22
=== smarter_ is now known as smarter
liwIn addition to -p, piuparts can create its own tarballs. Or you can construct one by hand. But let's stick to pbuilder ones, they're easiest for most people.16:22
zerwasQUESTION: (by Laney) piuparts understands debian and ubuntu releases, right?16:23
liwLaney, yes; piuparts just uses apt-get to do stuff, so it is fine with anything that apt understands16:23
liwnext+1 section: Testing packages for newer releases16:23
liwPiuparts can test packages for newer releases of Ubuntu, on older release of Ubuntu, if you use the debootstrap package from backports.16:24
liwThis way, if your machine runs intrepid, but you want to test that your package works in jaunty, you can.16:24
liwokay, I have one final section to go through (Gotchas), and after that you're all ready to actually start running things without ruining things :)16:24
liwlast section: Gotchas16:25
liwPiuparts works on a chroot.16:25
liwThis means that it does not properly protect the host system.16:25
liwA malicious package, or a really unfortunately buggy package, may ruin the host system.16:25
liwIn the three years since I wrote piuparts, I have had that happen, but it's possible.16:25
liwThe solution, of course, is to fix piuparts to use KVM. (Volunteers welcome.) Or to run piuparts in a virtual machine (that's what I do now).16:25
liwPiuparts can use a lot of CPU, RAM, disk I/O, and network bandwidth.16:26
liwBe prepared for that. It's nowhere near as fast to use as, say, lintian.16:26
liwSome of the checks piuparts does often fail, but they don't matter much in real life.16:26
liwThe manual page has lists all options, so you can look there if something annoys you.16:26
liwFor example, piuparts checks that all symlinks point somewhere that actually exist.16:26
liwFor some reason, this is triggered fairly often, so you can disable it with the --no-symlinks (-N) option.16:26
liwpiuparts in Ubuntu defaults to gutsy, since it hasn't been updated since the hardy release to a better default. You can blame me for that.16:26
liwActually, don't blame me, file a bug in Launchpad, and subscribe me to it (liw on Launchpad).16:27
liw(Yes, everyone reading this can do that. I can take it.)16:27
liwYou can work around this by specifying the distribution manually with the -d option:16:27
liwpiuparts -d jaunty foo16:27
liwOK. Go run piuparts now. I want questions.16:27
liw<Laney> So what's the command to test upgradability from the current stable release? I guess -d intrepid -d jaunty foo.deb?16:29
liwyep, unless I forget something16:30
Laney\o/16:30
liwit's possible piuparts can only test upgrades between releases for packages already in the archive, in which case you need to specify "-a foo" instead of "foo.deb"16:30
zerwas<weboide> I just had this error: E: Couldn't find package debfoster16:30
liwweboide, hmm, let me check16:31
liwah, I think we're hitting the difference between "main" in Debian and Ubuntu here16:31
liwlet me check something16:32
liwthe problem is that debfoster is in main in Debian (almost everything is), but in universe in Ubuntu, and piuparts was written before I really knew about Ubuntu, so it assumes it's enough to just use main16:34
liwso the solution is to tell piuparts to use universe as well as main16:35
liwexcept for some reason, for me the debfoster thing works, so I have a hard time testing, hmm16:36
liwoh, I forgot -p16:37
liwno wonder it was slow :)16:37
liwdebugging under public scrutiny does wonders for my humility muscles16:37
liwweboide, anyway, the solution should be to specify the mirror for piuparts: -m 'http://your.mirrorhere/ubuntu main universe'16:40
liwweboide, could you test that?16:40
weboideliw: sure16:40
weboideliw: It just passed the debfoster installation. so it helped :)16:43
liwweboide, yay16:43
liwany further questions? is everyone busy waiting for their machines to stop churning?16:47
jbernardyep ;)16:48
=== bac is now known as bac_lunch
mneptokliw: i thought "Thou shalt not paste Unix commands from Finns on IRC into thy shell," was one of the new commandments.16:57
liwI think we're just about out of time. Thank you, everyone. If you have further questions about piuparts, I'm often available on #ubuntu-devel and other IRC channels.16:58
dinxtercheers liw!16:59
Ape3000I just got it working :D17:00
liwApe3000, yeay17:00
zerwasTHANKS for all this liw!17:01
mvohello17:03
mvoI think I'm next :)17:04
mvothe next topic is "fun with python-apt"17:05
mvois there anyone interessted in montioring #ubuntu-classroom-chat for questions while I talk and paste them there ?17:05
dinxteryep... oops :)17:06
mvoaha, cool. I will just start then - you can ask questions anytime :)17:06
mvopython-apt exposes most of the functionatliy that apt-get/libapt17:06
mvoprovide via python.17:06
mvoso everything that apt-get/synaptic and friends can do can be done via python-apt17:06
mvolets start with a example to see how scary it really is :)17:07
mvoHere is a simple example:17:07
mvo#!/usr/bin/python17:07
mvoimport apt17:07
mvocache = apt.Cache()17:07
mvopkg = cache["apt"]17:07
mvoprint "name: ", pkg.name17:07
mvoprint "installed version: ", pkg.installedVersion17:07
mvo(feel free to copy/paste that into a text file and run to see what it outputs)17:07
mvoThis example illustrates the central piece of the libapt system. The17:08
mvopackage cache (availalbe as apt.Cache()). It is a fast representation17:08
mvoof the data available in /var/lib/apt/lists and is created as a17:08
mvommap-able binary file in /var/cache/apt/pkgcache.bin. It contains17:08
mvoinformation about all the available binary packages and17:08
mvodependencies. In the python version it behaves like a dict.17:08
mvoThe other piece is the package object. It contains general information17:08
mvolike name and description, version information and information about17:08
mvothe status (installed, downloadable, ..). It can also be used to17:08
mvomanipulate the state of the package.17:08
mvoDocumentation is available via: "pydoc apt", "pydoc apt.Cache", "pydoc17:09
mvoapt.Package", etc. There is also a (very new and good) website17:09
mvoavailable here:17:09
mvohttp://apt.alioth.debian.org/python-apt-doc/17:09
mvoany questions so far?17:10
mvopackage can be in a lot of different states17:11
mvoHere is a example to inspect package states:17:11
mvo#!/usr/bin/python17:11
mvoimport apt17:11
mvocache = apt.Cache()17:11
mvoprint "available packages: ", len(cache)17:11
mvofor pkg in cache:17:11
mvo    if pkg.isInstalled:17:11
mvo       print "installed: ", pkg.name17:11
mvoprint "num installed: ", len([pkg for pkg in cache if pkg.isInstalled])17:11
mvoIf I'm going too fast (or too slow) please shout :)17:12
mvoThis shows that the cache can be manipulated in a similar way like a17:12
mvoregular dict, it should feel "python-ish" :)17:12
mvothis example again shows that the cache is the central structure, it contains all the package object that can be used to get information about the system17:14
mvoQUESTION: what is the difference between Package.installedSize and Package.installedPackageSize?17:15
mvothe package size is the size of the download (the compressed package itself)17:15
mvothe installedSize is the actual size on disk17:16
mvoof the unpacked thing17:16
mvoit may be not 100% accurate because the package may create files in its postinst or other scripts17:16
mvobut generally its good enough17:16
mvoLets do anohter example:17:17
mvo#!/usr/bin/python17:17
mvoimport apt17:17
mvoprogress = apt.progress.OpTextProgress()17:17
mvocache = apt.Cache(progress)17:17
mvoprint "summary: ", cache["apt"].summary17:17
mvoThis shows another important concept. Progress objects. Everytime apt17:17
mvodoes something that takes a long time (like building the caches,17:17
mvofetching stuff from the network or installing packages) it can use17:17
mvoprogress objects to give user feedback. There are some text based17:17
mvoprogress objects available that can be readily used.17:17
mvothose progress object are regular python classes so they can be used as the basis to make fanncier progress information available17:19
mvogtk or qt progress would be a example17:19
mvocurrently there is text based progress available in the lib, but the jaunty version already has some gtk based progress widgets available as well17:19
mvothat should make intergration even easier17:19
mvoHere is a example how to create your own progress objects:17:20
mvo#!/usr/bin/python17:20
mvoimport apt17:20
mvoclass MyOpProgress(apt.progress.OpProgress):17:20
mvo        " example class that demonstrates how a progress can be subclassed "17:20
mvodef update(self, percent):17:20
mvoprint "update: ", percent17:20
mvodef done(self):17:20
mvoprint "done!"17:20
mvoprogress = MyOpProgress()17:20
mvocache = apt.Cache(progress)17:20
mvoprint "summary: ", cache["apt"].summary17:20
mvoThis creates a new class based on the normal progress class that17:20
mvooverwrites the the functions called by apt.17:20
mvoinformation about the methods in the progress code is avialable via "pydoc apt.progress"17:21
mvothere is also a lot of example code in update-manager or gdebi (big users of pyhton-apt :)17:21
mvoall good so far? examples working :) ?17:22
mvoThe python-apt system is not limited to querrying but it can also17:24
mvoperform actions. Here is a example (that needs to run as root) of a17:24
mvoapt-get update like call:17:24
mvo#!/usr/bin/python17:24
mvoimport apt17:24
mvofetchprogress = apt.progress.TextFetchProgress()17:24
mvocache = apt.Cache()17:24
mvocache.update(fetchprogress)17:24
mvocache.open(apt.cache.OpProgress())17:24
mvoIts important to re-open the cache after it was updated (this will17:24
mvoeventually become part of update() api I think so that it happens17:24
mvoautomatically).17:24
mvowhile the api is pretty solid there are some small warts still (like this open() is required after update())17:25
mvowe are working on it :)17:25
mvofetchprogress can again be your own class, it just has some more methods that can be overwriten17:26
mvoWe can of course install stuff too:17:26
mvo#!/usr/bin/python17:26
mvoimport apt17:26
mvofetchprogress = apt.progress.TextFetchProgress()17:26
mvoinstallprogress = apt.progress.InstallProgress()17:26
mvocache = apt.Cache()17:26
mvocache["2vcard"].markInstall()17:27
mvocache.commit(fetchprogress, installprogress)17:27
mvocache.open(apt.cache.OpProgress())17:27
mvothe open() is important again so that apt knows about the chanages. you could omit it and save time is the cache is not needed afterwards17:28
mvoe.g. because your applicaiton exists after it installed something17:28
mvo(the last line should be cache.open(apt.progress.OpProgress()) - thanks to maxb)17:29
mvoany change done in the cache is just "simulated" until commit() is called17:30
mvoby default python-apt will ensure that everything is consistent, i.e. if you install a package in the cache that requires dependencies, it will automatically mark them for install in the cache as well17:31
mvoThis lets us do multiple install/removes too, it will commit17:31
mvowhatever is currently set in the cache. So its a good idea to inspect17:31
mvothe cache before we commit changes. This is done like this:17:31
mvo#!/usr/bin/python17:31
mvoimport apt17:31
mvocache = apt.Cache()17:31
mvocache["4g8"].markInstall()17:31
mvofor pkg in cache.getChanges():17:31
mvo    if pkg.markedInstall:17:31
mvo       print "installing: ", pkg.name17:31
mvo    elif pkg.markedUpgrade:17:31
mvo       print "upgrade: ", pkg.name17:32
mvo    elif pkg.markedDelete:17:32
mvo       print "removing: ", pkg.name17:32
mvoSee the "pydoc apt.package" documentation for all the available17:32
mvostates.17:32
mvopython-apt gives you full control over the consistency if you want, you can e.g. prevent it from automatically fixing problem and do that yourself, but its recommended to let it run in autoFix mode :)17:33
mvostates like automatic dependencies (for apt-get autoremove) will also be done correctly and a commit() will do the right thing and write them out17:34
mvoEach package has two versions. The installed version (if any) and the17:35
mvocandidate version. Those can be querried via:17:35
mvo#!/usr/bin/python17:35
mvoimport apt17:35
mvocache = apt.Cache()17:35
mvofor pkg in cache:17:35
mvo    if pkg.isUpgradable:17:35
mvo       print "pkg '%s': now '%s' candidate: '%s'" % (pkg.name, pkg.installedVersion, pkg.candidateVersion)17:35
mvoEach package can of course have multiple versions, but apt will show you two by default17:35
mvothe candidate is the one that you can install17:35
mvoand the installed is self explaining :)17:35
mvothe candidate version can be manipulated with the apt policy and by setting it directly, but that again is not recommended, usually its doing the right thing when it calculates the candidate17:36
mvousually the candidate is just the higest available downloadable version17:36
mvoOne nice feature of python-apt is that you can give it a alternative17:37
mvorootdir to look for status file and sources.list. If you want to know17:37
mvowhat warty loooked like (back in the days) you could do:17:37
mvo#!/usr/bin/python17:37
mvoimport apt17:37
mvoimport os17:37
mvoimport os.path17:37
mvoalt_root = "/tmp/warty"17:37
mvofor d in ["/etc/apt/",17:37
mvo        "/var/lib/apt/lists/partial",17:37
mvo        "/var/lib/dpkg",17:37
mvo  "/var/cache/apt/archives/partial"]:17:37
mvo  os.makedirs(alt_root+d)17:37
mvoopen(alt_root+"/var/lib/dpkg/status","w")17:38
mvoopen(alt_root+"/etc/apt/sources.list","w").write("deb http://old-releases.ubuntu.com/ubuntu warty main")17:38
mvoc=apt.Cache(rootdir=alt_root)17:38
mvoc.update(apt.progress.TextFetchProgress())17:38
mvoc.open(apt.progress.OpProgress())17:38
mvoprint "warty apt version: ", c["apt"].candidateVersion17:38
mvoin this example first a bit of directory structure is created (that should probably go into the lib itself) and then the alternative rootdir is created17:38
mvothe cache then reads the information from there instead of the main system17:38
mvothis is handy in some situations, e.g. to debug stuff or to calculate differences in the packages between multiple version or for history interesst or or .)17:39
mvoyou could do e.g. a daily "whats new available in jaunty" thing with it while still runing hardy etc17:41
mvoyou may have noticed that the apt.package.Package object does not expose everything there is in a package record17:41
mvo(the package record is the stuff that is output via apt-cache show package)17:42
mvoe.g. apt-cache show apt has a task field17:42
mvothat is not exposed there17:42
mvoor the bugs field17:42
mvothe reason is that in the mmap struture only the most important information is represented17:42
mvofor performance reasons17:42
mvobut the information is still available, its just a little bit slower when checked :)17:43
mvo(and a lot slower if you querry every package with the full record instead of the mmap-ed struture)17:43
mvoThe package object does not expose all fields of a package, just the17:43
mvomost important ones. To access the others, there is the package17:43
mvo"Record". It contains the full content of the Packages entry for the17:43
mvoparticular package. It can be accessed as a dict or as a string. Here17:43
mvois a example:17:43
mvo#!/usr/bin/python17:43
mvoimport apt17:43
mvocache = apt.Cache()17:43
mvopkg = cache["synaptic"]17:44
mvoprint "Bugs entry: ", pkg.candidateRecord["Bugs"]17:44
mvoprint "Full record: ", str(pkg.candidateRecord)17:44
mvoThis covers the most important aspects of the python-apt high level17:45
mvointerface.17:45
mvomore examples (of mixed quality :P are availalbe in the python-apt examples folder:17:45
mvo/usr/share/doc/python-apt/examples/17:45
mvoThere is also the aptsources interface to manipulate the sources.list17:45
mvoand the low level apt_pkg and apt_inst interfaces that provide a17:45
mvodirect mapping of the underlaying C++ interface of libapt to python17:45
mvo(and its not very python-ish :). apt_pkg/apt_inst is used to implement17:45
mvothe higher level apt interface.17:45
mvoapt_pkg is nowdays no longer needed for most tasks, the apt interface covers most of it17:46
mvoapt_pkg does not follow PEP08 (the python code style guidelines) and is generally a bit "rough"17:46
mvoso only use it if you really need it :)17:46
mvootherwise use "import apt"17:46
mvoDevelopement power is always welcome! Projects that use python-apt are17:47
mvoupdate-manager, gnome-app-install, gdebi, software-properties and17:47
mvomore. If you are interessted in hacking on python-apt (or any of the17:47
mvotools that use it) you are very welcome to do so. The code is17:47
mvomaintained in bzr.17:47
mvothat was my overview about python-apt - any questions?17:47
mvoor suggestions?17:47
mvoif there are none, thank you very much for your attention and I hope you have enjoyed it :)17:50
jbernardthanks alot, very helpful17:52
mvolet me answer the packagekit question first17:52
mvopackagekit is currently in universe, we plan to move it to main for jaunty, but we can not use it for everything17:53
mvothe problem is basicly that packagekit does not allow anything like debconf during installation17:53
mvothat is fine most of the time17:53
mvobut there are packages that require some form of interaction, otherwise they fail to install17:53
mvothing of virtualbox (at least that used to need it)17:54
mvoor java17:54
mvoor stuff like this17:54
mvoso we will use it for some stuff were we know its save to use17:54
mvobut not for e.g. update-manager where it maybe any package (including those that require debconf)17:54
mvobut packagekit is really something on top of python-apt, its a layer higher17:55
mvo(in fact, the packagekit backend for apt is implemented using python-apt :)17:55
mvoQUESTION: i take it getting the apt.Cache() locks the cache file? if so how do i release it for other apps17:55
mvothrere are the "apt_pkg.PkgSystemLock() and apt_pkg.PkgSystemUnLock()" calls for this17:56
mvoif python-apt is used as non-root then no locking is needed, that is the safest option :)17:56
mvogdebi for example only switches to root for the actual installing, everything else is done as the user17:57
mvoa last note. a pretty nice overview over the apt system is here: http://algebraicthunk.net/~dburrows/blog/entry/images/apt-diagram-simple.png18:01
iulianNext up is rockstar and beuno with "Bazaar and Launchpad - How to do it".18:05
iulianRock on guys!18:05
rockstarHi everyone.  My name is Paul Hummer, and I work on the Launchpad Code team.  Also with me is my cow orker, Martin Albisetti, who is awesome in his own rite.18:05
rockstarToday we're going to be talking about some good principles and practices for using bzr with Launchpad.  Most of these things are only suggestions, but I would say that they are very STRONG suggestions.18:06
rockstarFirst, some pre-requisites...18:06
* beuno waves18:06
rockstarIf you're not using bzr from the bzr ppa, you REALLY should be.18:07
rockstarIt can be found here: https://edge.launchpad.net/~bzr/+archive/ppa18:07
rockstarThis will make sure you're getting the best out of Bazaar, and in effect, the best out of Launchpad.18:07
rockstarI'm not sure if emmajane covered this in her session, but I can't stress enough the importance of setting your name in bzr.18:08
rockstarYou can do this at the terminal by typing `bzr whoami` first.18:08
rockstarIf I were to type that on this system without configuring it, it would return <rockstar@megatron>, as my system user is rockstar, and my system name is megatron.18:09
rockstarIf it returns a <user@host> to you, you need to configure it.18:10
rockstarSo you'll need to type `bzr whoami "Paul Hummer <paul@example.com"` obvious substitutions.18:11
rockstar...apply18:11
rockstarNow bzr will know who attribute your revisions to.18:11
hollowaysorry for the interrupt, you mean `bzr whoami "Paul Hummer <paul@example.com">` ?18:12
rockstar`bzr whoami "Paul Hummer <paul@example.com>"`18:12
rockstarThanks for the clarification beuno18:12
beunoholloway, please head over to #ubuntu-classroom-chat for questions18:12
beunoapw, asked: QUESTION: is bzr whoami global or per checkout?18:13
rockstarEr, holloway, thanks.18:13
hollowayyeah sorry18:13
beunoanswer: global, although you can specify it per branch additionally18:13
rockstarapw, yes, what beuno said.  ~/.bazaar/locations.conf is where you'd set it per banch.18:14
rockstars/banch/branch18:14
rockstarIt's important that the email address you set here is one that Launchpad knows about (and it's confirmed).18:14
rockstarLaunchpad will then look at those revisions, and say "I know this email address!  It belongs to X user!"18:15
rockstarThen, when you look at a branch's revisions, the ones that belong to you will be linked to your account.18:15
rockstarAnd, for those who are karma happy, you'll get karma for the revisions that belong to you.18:16
rockstarSo, let's get on to the Launchpad part.18:16
rockstarYou've got your project all set up, with it's accompanying branding bling, and now you're ready to make it host some code.18:16
rockstarFor the next few examples, I'm going to use my username and a project I work on called Entertainer.18:17
rockstarSo I have a branch that I'd like to be considered THE entertainer branch.  It's the one that releases will be cut from.18:17
rockstarInside that branch I'll type `bzr push lp:~rockstar/entertainer/trunk`18:17
rockstarThis will push up a branch of entertainer called trunk18:17
rockstarNow I need to make launchpad reflect that this is the Entertainer "trunk"18:18
rockstarI do that by setting it as the "Development Focus"18:18
rockstarThis has a few side effects.18:18
rockstarThe first is that I can now branch that same branch by typing `bzr branch lp:entertainer`18:19
rockstarLaunchpad knows the development focus branch is lp:~rockstar/entertainer/trunk and so that's the branch I end up with.18:19
beuno< apw> QUESTION: how did you tell it that it was the Development Focus, was that a ticky somewhere in LP ?18:20
rockstarAlso, when new users come to hack on my project (because that's Launchpad's best thing about it), they'll know where to focus their efforts.18:20
rockstarapw, if you go to https://edge.launchpad.net/entertainer you'll see a link that says trunk (focus of development)18:21
rockstarClick on that, and you'll see a link to the "trunk" branch.18:22
rockstarOn the right hand side, you'll see a Link to branch link.18:23
rockstarThat's how you would set it.18:23
rockstarI need to add a caveat here.  It's best to have you trunk branch owned by a team (this will require creating a team).18:24
rockstarThis way, you don't block development landings when you go on vacation for two months.  Other members can merge branches into trunk while you're gone.18:24
rockstarAlright, moving on...18:26
rockstarNow we have the "trunk" set up.18:26
rockstarI'm going to context switch to act as a user named cthulu on Launchpad.18:27
rockstarI come to the entertainer project and I want to hack on it.18:27
rockstarThe first thing I want to do is to get a local mirror of trunk.18:27
crashsystemsI'm late18:28
rockstarThe benefit of a local mirror of trunk is that it doesn't require internet connections to create a new branch.18:28
rockstarSo I `bzr branch lp:entertainer` and now have a local branch called entertainer.18:29
rockstarSo I branch from that one to fix bug 1234567 by doing `bzr branch entertainer bug-1234567`18:29
rockstarI can then go into the bug-1234567 branch, and push it to Launchpad by doing `bzr push lp:~cthulu/entertainer/bug-1234567`18:30
beuno16:25 < DoruHush> QUESTION: How a sub-branch of a main branch of a project get registred. What steps a user should to register a sub-branch (his working bzr18:30
beuno                  branch in Launchpad, not localy ) ?18:30
beuno16:26 < DoruHush> like another branch in a team project18:30
rockstarI blogged about some configuration settings that I use to make pushing simpler here : http://theironlion.net/blog/2009/01/13/using-bazaar-launchpad-making-pushing-easy/18:31
rockstarDoruHush, I think what you're asking is what I just went over.  Do you have other questions?18:31
=== bac_lunch is now known as bac
rockstarThe branch for bug-1234567 is now registered with Launchpad as a hosted branch (notice I didn't have to use the Web UI at all.  Launchpad is so s-m-a-r-t)18:32
beuno< postalchris> Is the bug-XXXX branch name magically recognized by Launchpad, or are you using that as a personal convention?18:32
rockstarPersonal convention really.18:32
rockstarHowever, this would be a good time to note a cool way to link your branch to a bug.18:33
rockstarSo I (as cthulu) hack and commit a few times, and finally get the code that fixes bug 1234567.18:33
rockstarSo when I commit, I'll type `bzr commit --fixes=lp:1234567`18:34
rockstarWhen that revision gets pushed, it'll automatically link the branch to the bug.18:34
beuno newz2000> QUESTION: is there a convention you use when working on new features not driven by bugs?18:35
rockstarnewz2000, not really.18:35
rockstarnewz2000, for instance, I just created a branch called "do-some-important-things-with-unicode"18:35
rockstarBranch names are only limited by your own creativity.18:36
rockstarI suggest leaving out cursewords unless the branch absolutely warrants it.  :)18:36
rockstarjames_w also notes "for the packagers amongst you if you use changelog bug closing and debcommit then (from intrepid onwards) the links will happen magically"18:37
rockstarAlright, moving on.18:37
rockstarSo now cthulu has his branch all completed, with tests (because he wrote his tests first, right?), and he wants to see his work land in mainline.18:38
rockstarMainline being "trunk"18:38
rockstarcthulu, however, doesn't have write privileges to trunk, and, frankly, teh Entertainer dev process is a little less "Wild west" with their commits.18:39
rockstarWe require code reviews and all that.18:39
rockstarLooking at his branch page on Launchpad, cthulu then clicks "Propose for merging into another branch"18:40
rockstarHe then follows the form through, setting it to land on trunk, and, since the Default Reviewer is set to Entertainer-Releases, he doesn't have to mess with that.18:41
rockstarAlthough, when I have a Launchpad branch that introduces new ui, I usually will request beuno to look at.  He's awesomer than me at that stuff.18:41
rockstarSo now there's a new merge proposal showing cthulu's bug-1234567 branch as the "source branch" and lp:entertainer as the "target branch"18:42
beuno< apw> QUESTION: if i commited something --fixes=lp:123456 how can i see that in bzr on my branch?18:43
rockstarapw, on Launchpad, when you view either that branch or that bug, you'll see a link to the other.18:43
apwnothing on my local branch copy?18:44
rockstarapw,  not sure actually.  I've never had to do that.  beuno?18:44
beunoapw, I don't think we expose that through the command line18:44
beunoit's hidden meta-data that you can get out through the API18:45
rockstarapw, I think I could probably whip together a plugin for that data later.18:45
rockstarAlright, moving on to the review process.18:46
rockstarI (as myself again) get an email that there's a branch proposed for merging.18:46
rockstarFirst I get really excited to see a new contributor.18:47
rockstarThen I'll look at the branch, and usually look at a patch by doing `bzr merge lp:~cthulu/entertainer/bug-1234567` in my trunk mirror, and then `bzr diff` to look at the diff.18:48
rockstarSoon, Launchpad will generate that diff for you.18:48
rockstarI'll make comments and suggestions, and then I'll give it a vote.  For this example I'll vote "Needs Fixing"18:49
rockstarcthulu will then respond with justifications on why he did things the way he did, and fix the code to follow the Entertainer coding conventions.18:50
rockstarAfter I look at it again, I see the changes made, and I change my review vote to "Approve"18:50
rockstarAt this point, the branch is ready to be merged.18:51
rockstarHowever, my band had an emergency tour to go on with my favorite band ever, so I disappear off the face of the planet for 6 months.18:51
rockstarNot to worry though, because there are other members of entertainer-releases that can merge (or "land") cthulu's changes into trunk.18:52
rockstarThey do this by merging his branch into their local mirror copy, committing it (with a detailed commit message), and then pushing it up.18:54
rockstarAny questions?18:54
rockstarI should also mention that if you're prototyping something, and it doesn't have a project in LP, you can push what we call a "junk branch".18:55
rockstarWe don't call it "junk" as a judgment of your coding skills, but because it's either going to become a project, or just scratch your itch.18:56
beuno< ia> QUESTION: how to create project at launchpad, so anyone else could download source via "bzr branch lp:<project>", not via "bzr branch18:56
beuno            lp:~<id>/+junk/<project>"?18:56
rockstarYou can push a junk branch by doing "bzr push lp:~rockstar/+junk/total-hack"18:56
rockstaria, creating a project is a pretty easy process.  https://edge.launchpad.net/projects/+new18:57
rockstarThen just pick up where I started in this session.18:58
rockstarAny other questions?18:58
rockstarAlso, if a project you like is using CVS or Subversion, but won't give you access to their repo, you can set up an import branch.18:59
rockstarImport branches sync a CVS or SVN trunk to a bzr branch that you can branch from and hack on.19:00
rockstarThis way, when you submit a patch to upstream, you also have a versioned path to creating that patch, instead of just having an svn checkout or something.19:01
beuno< LaserJock> QUESTION: so do you do all the code review via email?19:01
* beuno doesn't19:02
rockstarLaserJock, I do most of my code reviews via email, because I like to use Vim as I review a patch.19:02
beuno< LaserJock> QUESTION: is there any real advantage to using a vcs-import instead of bzr-svn?19:02
rockstarLaserJock, but I sometimes use the web interface.19:03
rockstarLaserJock, well, the real advantage is that a vcs-import will stay synced for you, instead of you having to sync it yourself.19:03
LaserJockrockstar: assuming the vcs-import stays in sync, right19:04
rockstarLaserJock, they usually do once the initial import is over.19:04
rockstarThere is some work being done to the import system to make it even more robust.19:05
LaserJock.. I'll leave that one alone then ;-)19:05
rockstarThe import system uses cscvs (https://edge.launchpad.net/launchpad-cscvs) to import.  Patches welcome.19:06
rockstar<tyhicks> QUESTION: In terms of migrating a project to bzr/launchpad, is it possible to import the code from git and preserve all commit history?19:07
rockstarI know there is some work being done on bzr-git (/me looks at jelmer), but currently, the only way to import is using fastexport/fastimport19:07
rockstarLaunchpad is planning on supporting git imports this year.19:08
rockstarAlright, thanks everyone!19:10
dinxterthanks!19:10
Ape3000Anybody know anything about the time of "Debugging program crashes by pitti"?19:11
* BenC wonders if there is a moderator, or should I just jump in19:11
iulianThank you rockstar, beuno!19:11
iulianWe now have BenC with "Packaging Kernel modules with DKMS."19:11
iulianThe stage is yours, Ben.19:11
BenCiulian: Thanks19:12
* Arc applauds for BenC19:12
crashsystemswas this discussion logged anywhere?19:12
Ape3000crashsystems: It can be soon fount here: https://wiki.ubuntu.com/MeetingLogs/devweek0901/BzrAndLp19:12
BenCI have to start off by saying that because of last minute schedule changes, I'm going to have to keep this short and sweet :)19:12
BenCSo this sessions is about DKMS, and using it to package kernel modules...19:13
DoruHushthank you19:13
BenCDKMS is a program that allows you to easily manage sources for modules, and have them automatically build against the kernel you are running/installing19:14
BenCGenerally it's used by users so they can have third party modules, and have those modules stay in sync with the kernel provided by your distro19:14
BenCBut we also use it for modules provided by vendors, especially those where there is a binary blob or other closed source portion (e.g. broadcom, fglrx, nvidia)19:15
BenChttp://kernel.ubuntu.com/~bcollins/dkms-presentation/19:15
BenCAt the above URL, you can find a presentation I did awhile back, and an example dkms package created for the presentation19:16
* BenC pauses for questions...19:16
BenCOk, I guess I'll go into some details of the package itself19:18
BenCThe source is always installed as /usr/src/<module>-<version>19:18
BenCthe package registers this with dkms during postinst19:19
BenCin the above directory is a dkms.conf file that describes the module and how it needs to be built19:19
BenCWhen the kernel is upgraded (or specifically, when the headers are upgraded) a script installed by dkms is triggered, and checks if any of the modules need to be rebuilt19:20
* BenC is assuming people interested in the kernel are already out drinking right now19:22
BenCGreat, that will let me wrap things up quick so I can take care of some other things...19:24
BenCLast chance for questions...19:24
BenCOk, thanks for having me...have a great weekend everyone19:25
DykamBenC, you should write this up in a text file somewhere, so people can read it later...19:26
Dykamit is a join/part mess now19:26
dinxterthanks BenC19:26
duanedesign.19:48
cody-somervilleHello Folks :)20:01
thiebaudehi20:01
cody-somervilleA coworker of mine is just showing me Xubuntu running on some ARM hardware. :) Pretty neat.20:02
cody-somervilleAnyhow, today I'm here to chat about Xubuntu20:03
=== kahrn_ is now known as kahrn
cody-somervilleI'm going to cover some of the upcoming changes in Jaunty, how you can take part in making those changes, and then I'm going to hand things off to charlie-tca20:04
* charlie-tca waves20:04
cody-somervillecharlie-tca will talk to you about how to get involved in Xubuntu via testing and QA efforts20:04
cody-somervilleSo, first, lets start off with what I'm sure most Xubuntu users would like to hear about... Xfce 4.6.20:05
cody-somervilleWe currently have Xfce 4.4.3 uploaded to Jaunty and backported to Intrepid. We're currently working on preparing and uploading the third beta of Xfce 4.6.20:05
cody-somervilleXfce 4.6 will be the next major release of the Xfce desktop20:05
cody-somervilleenvironment. The previous release was 4.4 with the last bugfix release20:05
cody-somervillebeing 4.4.3.20:05
cody-somervilleXfce 4.6 comes with a lot of new components, some of them replacing old20:06
cody-somervillecode and some of them being completely new.20:06
cody-somerville 20:06
cody-somervilleReplaced components:20:06
cody-somerville * libxfce4mcs      => xfconf20:06
cody-somerville * xfce-mcs-manager => xfconf, xfce4-settings20:06
cody-somerville * xfce-mcs-plugins => xfce4-settings20:06
cody-somerville * xfce4-mixer      => xfce4-mixer (rewrite)20:06
cody-somerville * xfce4-appfinder  => xfce4-appfinder (rewrite)20:06
cody-somerville 20:06
cody-somervilleNew components:20:06
cody-somerville * libxfce4menu (used by xfdesktop and xfce4-appfinder)20:06
cody-somervilleLets take a quick look at some of the changes:20:07
cody-somervilleWhile Xfce 4.4 shipped a centralized settings storage system with20:07
cody-somervilledynamically loaded plugins, 4.6 features a D-Bus based settings20:07
cody-somervilledaemon (xfconfd). All settings dialogs are just standalone20:07
cody-somervilleapplications now which makes the whole platform more flexible. You20:07
cody-somervillecan now much easier write a settings dialog and remove/add20:07
cody-somervillecomponents from/to Xfce.20:07
cody-somervilleIn addition to xfconf and the settings dialogs being ported to20:08
cody-somervillexfconf, there will also be tools addressed to users who would you20:08
cody-somervillelike to have direct access to the settings. There is a shell20:08
cody-somervilleapplication xfconf-query which allows to list/get/set properties20:08
cody-somervilleand a graphical settings editor is in development and will most20:08
cody-somervillelikely be part of 4.6 as well.20:08
cody-somervilleSo scripting your desktop will become super-duper easy in Xubuntu.20:08
cody-somervilleOne major complaint I hear is about keyboard shortcuts in Xubuntu, luckily Xfce4 developers have addressed that too. Xfce4 developers have tried to make the keyboard shortcuts settings more20:09
cody-somervilletransparent to the user. Shortcut themes have been completely20:09
cody-somervilledropped and there are dialogs now which help resolving conflicting20:09
cody-somervilleshortcuts between xfce4-settings (command shortcuts) and xfwm420:09
cody-somerville(window manager shortcuts).20:09
cody-somervilleAny questions thus far?20:09
cody-somervilleOkay, awesome.20:09
cody-somervilleAnother major complaint was the menu!20:10
cody-somervilleIn 4.4 xfdesktop used a pseudo-fd.o-compliant menu system. In 4.620:10
cody-somervillethis is replaced by libxfce4menu which aims at implementing the20:10
cody-somervillefd.o menu spec. It's still in development but covers enough of the20:10
cody-somervillespecification already to replace the old code.20:10
cody-somervilleThe volume control (xfce4-mixer) has also been replaced with a20:10
cody-somervillecompletely new mixer based on GStreamer 0.10. This removes the need20:10
cody-somervilleto maintain support code for different sound architectures and also20:10
cody-somervilleprovides some new features.20:10
cody-somervilleQUESTION:will xubuntu continue to be supported by low machines (~192 RAM)even though applications are growing?20:12
cody-somervilleThis is a difficult question to answer. I'd certainly like to see Xubuntu attempt to maintain a lightweight, responsive feeling. Unfortunately, performance degradation in Xubuntu often has to do with low-level components such as X and the kernel.20:14
cody-somervilleHowever, there has been changes made in Jaunty that will hopefully see a faster login to desktop time.20:14
cody-somervilleQUESTION: What "different sound architectures" did you have in mind?20:15
cody-somervillebullgard4, since the new xfce4-mixer uses gstreamer, it no longer has to maintain code for different sound architectures like alsa, esd, etc. Gstreamer takes care of it.20:15
cody-somervilleAnyhow, if you'd like to see some videos of Xfce 4.6 in action, an Xfce4 Developer has posted some here:http://lunar-linux.org/~jannis/videos/xfce/20:16
cody-somervilleSome other enhancements that we're making to Jaunty include:20:16
cody-somerville * Samba browsing via Thunar20:16
cody-somervilleYou can take a look at a screenshot here: http://cody.zapto.org/screenshots/xubuntu_delivers_samba.jpg20:16
cody-somerville * GIO Mount Manager20:17
cody-somerville * And other improvements to thunar such as a meta-data pane20:17
cody-somervilleYou can take a look at a screenshot here:http://cody.zapto.org/screenshots/Screenshot%20-%20thunar4.png20:18
cody-somerville * Search in Thunar20:18
cody-somervilleYou can take a look at a screnshot here: http://cody.zapto.org/screenshots/Screenshot%20-%20thunar2.png20:18
cody-somervilleQUESTION: Will old plugins to Thunar and Panel work?20:18
cody-somervilleTheSheep, yes20:18
cody-somervilleThe next item on my list of things to discuss with you guys today is getting involved.20:19
cody-somervilleGetting involved in Xubuntu is easy and fun! :)20:19
cody-somervilleTo start, simply sign up on our xubuntu-devel mailing list and join #xubuntu-devel on Freenode20:19
cody-somervilleWe're a friendly bunch and enjoy helping folks learn the ropes :)20:20
cody-somervilleThere are tons of opportunity to take initiative and make your mark.20:20
cody-somervillePackaging, artwork, evangelism, coding, web design, documentation writing, etc. you name it.20:21
cody-somerville:)20:21
cody-somervilleNot to mention bug triage and testing!20:21
cody-somervillecharlie-tca, :)20:21
charlie-tcaThank you, cody-somerville20:21
charlie-tcaI am the lead for Xubuntu QA, Testing and Bug Triage.20:22
charlie-tcaXubuntu is an ideal candidate for old or low-end machines, thin-client networks, or those who would like to get more performance out of their hardware.20:22
charlie-tcaAlso, Xubuntu is the Xfce-based distribution with a native 64-bit architecture. We produce both a 32-bit and 64-bit versions.20:23
charlie-tcaWe also produce ports for the Mac PowerPC and Sony PlayStation 3.20:23
charlie-tcaAlong with producing those versions comes testing to make sure the distribution actually works.20:23
charlie-tcaThe goal is to have each image tested thoroughly before release. Being a small group, that becomes difficult at times.20:24
charlie-tcaTo accomplish this testing, almost any hardware will work. I personnally favor a PIII myself.20:24
charlie-tcaI do not use any restricted drivers, and normally get 1400x900 resolution out of these machines. The cpu is only 866MHz.20:25
charlie-tcaWe have information on the xubuntu developers wiki at https://wiki.ubuntu.com/Xubuntu/Testing/TestingInfo for testing Xubuntu.20:25
charlie-tcaSince it is Xfce-based, many of the tests are unique to Xubuntu. We also use Thunar for the file manager and Listen for music.20:25
charlie-tcaWe maintain a short test case for daily images, to allow a quick test to be done. This test is also used for the liveCD testing and shouldn't take more than about 5 minutes to complete.20:26
charlie-tcaWe also maintain a longer, more involved test for milestone releases. This allows more thorough testing before the users get the image.20:26
charlie-tcaWhen testing the images, results are reported on the qa tracker. This allows the Ubuntu QA team to know the images are good or bad, also.20:27
charlie-tcaMost of the bugs we find in Xfce are forwarded upstream to http://bugzilla.xfce.org/20:28
charlie-tcaOpenOffice.org is not included as a default in Xubuntu, so we handle most of the Gnumeric and AbiWord bugs too, since those are the default applications. They are both very powerful for the user, yet lightweight.20:29
charlie-tcaWe have provided procedures for forwarding Xfce and AbiWord bugs upstream. These procedures help to smooth the processes greatly.20:29
charlie-tcaWe work very close with xfce, abiword and gnumeric bug teams to help resolve the bugs found.20:30
charlie-tcaWe have some really exciting things happening, with Xfce 4.6 coming! We will be the first distribution running this, and will be doing extensive tests to make sure it works.20:31
charlie-tcawe welcome anyone who would like to assist in development, testing, and bug triage!20:31
charlie-tcaAny questions?20:32
charlie-tca<cody-somerville> QUESTION: What do I do when I find a bug?20:34
charlie-tcaI did leave that out, didn't I. There is information on https://wiki.ubuntu.com/Xubuntu/Bugs for filing bugs found in Xubuntu testing.20:35
charlie-tcaWe do report bugs found through launchpad.20:35
charlie-tcaWe also try to make sure the bugs are forwarded upstream when needed.20:36
charlie-tca<tictacaddict> QUESTION: Is XFCE 4.6 planned for Jaunty, then?20:36
charlie-tcaAt this time, we are planning to include it in Jaunty.20:37
charlie-tcaThe beta 3 is being packaged for us at this time. Hopefully, I get to test it before the Alpha4 release.20:38
charlie-tca<bullgard4> charlie-tca: GNOME is there because many users like it.Why don't they choose to take XFCE instead?20:41
charlie-tcaGreat question! I used Gnome and Ubuntu desktop in the past. I found that on my older equipment, Gnome would react much20:42
charlie-tcatoo slow for my uses. I could firerox by itself, with at most 4-5 tabs.20:43
charlie-tcaI had to replace OpenOffice.org apps with AbiWord and Gnumeric.20:43
charlie-tcaXubuntu comes ready for me to use on that same equipment. I can now use the system without replacing many of the applications.20:44
charlie-tcaXubuntu's lower memory requirement and use of light weight applications fit the older hardware very well.20:45
charlie-tcaAny more questions?20:47
charlie-tcaI think that for anyone trying it, you will find that Xubuntu gives excellent performance with no loss of applications.20:47
charlie-tcaWe maintain the same release schedule as Ubuntu, and did release Hardy Heron 8.04 as an LTS.20:49
charlie-tcaSince we are using the same repositories as Ubuntu, Xubuntu is as up to date as Ubuntu.20:50
charlie-tca<ongolaBoy> QUESTION: when will be xubuntu 8.04.2 available ?20:50
charlie-tcaDue to the packaging requirements, Xubuntu will not be releases as .2 ; however, if you update your system, it is automatic.20:51
charlie-tcaThe .2 release is simply Ubuntu 8.04 with the latest updates to the point of the .2 release.20:52
charlie-tca<ongolaBoy> charlie-tca: ok. so the last spin was xubuntu 8.04.120:53
charlie-tcaYes, the last 8.04 spin was .120:53
charlie-tcaAnd, it will probably stay as the 8.04.1 through it's lifetime. Our images are built by the same team, and do use most of the same software.20:54
charlie-tcaI would like to thank everyone for participating! Have a great day!20:58
iulianThank you cody-somerville, charlie-tca.  That was very interesting.21:00
iulianOK, so I'm afraid I will have to say that this is the end of Ubuntu Developer Week.21:01
iulianI would like to thank you all for participating and have a wonderful weekend!21:01
iulianI am sure you all had a great time!21:01
mneptokiulian: multsumesc!21:31

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!