=== elopio_ is now known as elopio
FuuqUmiistso what ever happen to the Ubuntu phone?00:43
FuuqUmiistwill it have better privacy for users than google's android?00:44
FuuqUmiistimagine if Ubuntu Touch was released before google android... the whole world would probably be using it by now00:46
popeyFuuqUmiist: we're still working on it ☻00:48
softcoderhello i need help to figure out a problem01:25
softcoderusing touch on nexus 4 and want to add a wifi connection to my router01:26
softcoderusing latest dualboot (android + ubu)01:26
softcoderwhen i try to enter my long wifi pwd.. after about 30-60 seconds of typing (cause the wifi pwd is long) touch leaves the screen and goes back to system settings on its own01:27
softcodersince copy / paste text does not work i cannot copy and paste the pwd into the edit box01:27
softcoderany ideas what ican do??01:27
popeyplug phone into laptop and use "phablet-network" to transfer the wifi setting to the phone01:27
softcoderhow does phablet network work?01:28
popeyit copies the network settings from /etc/somewhere to the phone01:28
softcoderi do have the phone plugged in via usb to this desktop ubuntu01:28
popeythe pc needs to be on the wifi01:28
softcoderis there no other way?01:28
popeymake the key shorter01:28
popeyuse adb shell, to get a prompt on the phone, then "stop powerd" (I think)01:29
popeythat will stop the screen blanking while you type the key in01:29
popeythen you can "adb shell" and "start powerd"01:29
softcoderi wil ltry that!01:29
popeygood luck01:30
popeyI'm off to bed, dreaming of wifi keys01:30
softcoderthat did not help01:33
softcoderanyone else with other ideas?01:33
softcoderstopping powerd did not disable to timeout entering wifi pwd01:33
softcodercan i just edit a text via via adb ??01:34
softcodergot it working02:28
softcoderadb root and adb shell02:29
softcoderthen vi the conf file located:02:29
softcoderi intiially entered the pwd test so i knew which key to modify02:29
softcoderreplace test with the real password, then save the file and voila02:30
cwaynecyphermox: hm, so when you do hostnamectl --pretty set-hostname "Nexus 4", hciconfig hci0 name shows Name: '"Nexus 4"'02:37
=== chihchun_afk is now known as chihchun
=== duflu_ is now known as duflu
=== ricardodrosales is now known as ricdros
=== Namidairo_ is now known as Namidairo
=== vying is now known as Guest68945
softcoderafter doing an upgrade on my nexus 406:43
softcoderi can no longer boot into android (hangs on google text)06:43
softcoderif i pick recovery it boots into ubuntu06:43
softcoderany ideas how i can fix the dual boot so android boots?06:43
softcoderon apt-get upgrade now06:46
softcoderit says:06:46
softcoderThe following packages have been kept back:06:46
softcoderautopilot-touch gstreamer1.0-hybris gstreamer1.0-plugins-bad06:46
softcoder  libgstreamer-plugins-bad1.0-0 libpython3.3-minimal libpython3.3-stdlib06:46
softcoder  libqt4-dbus libqt4-declarative libqt4-network libqt4-script libqt4-sql06:46
softcoder  libqt4-xml libqt4-xmlpatterns libqt5concurrent5 libqt5core5 libqt5dbus506:46
softcoder  libqt5gui5 libqt5network5 libqt5opengl5 libqt5opengl5-dev06:46
softcoder  libqt5printsupport5 libqt5sql5 libqt5sql5-sqlite libqt5test5 libqt5widgets506:46
softcoder  libqt5xml5 libqtcore4 libqtgui4 python3.3 python3.3-minimal qt5-qmake06:46
softcoder  qtbase5-dev qtbase5-dev-tools ubuntu-sdk-libs ubuntu-touch06:46
shiggitayhow goes the codin' ? :)07:04
softcodercan anyone here tell me how to get my android partition booting (nexus 4 dual boot)?07:09
softcoderis there a way to tell it fix the dual boot for the androdi poart?07:09
softcodert - 15 minutes till i try to reflash back to android... can anyone tell me how to get my android partition booting?07:28
dholbachgood morning08:06
shiggitayhello thar08:08
shiggitaysup mrc_08:09
softcoderok can anyone tell me how to fix a frozen android boot on nexus 408:33
softcoderusing dual boot.. can boot into ubuntu via recoery but not default android08:33
softcoderfastboot flash boot boot.img08:40
softcoderfastboot flash recovery recovery.img08:40
softcoderand both working08:40
Tachyon`any fix for dual boot on 4.4.2 yet?09:07
=== psivaa_ is now known as psivaa
=== j-b_ is now known as j-b
tsdgeosMirv: zsombi: so i found out that http://paste.ubuntu.com/6761226/ fails under 'xvfb-run -a -s "-screen 0 800x600x24" qmltestrunner' but work under plain 'qmltestrunner'09:59
tsdgeosif using 5.209:59
tsdgeostrying to find out why09:59
=== chihchun is now known as chihchun_afk
zsombitsdgeos: excellent! wth is going on with xvfb?10:21
tsdgeoszsombi: seems the main window is not getting the initial "focus in" event10:22
tsdgeosand thus focus is borked since that10:22
zsombitsdgeos: hmm...10:22
tsdgeostrying to find out why10:22
ogra_ricmm_, have there been recent unity-mir chganges that could cause bug 1269414 ?10:26
ubot5bug 1269414 in Ubuntu Music App "Sound is cut when another application is launched" [High,Triaged] https://launchpad.net/bugs/126941410:27
ogra_seems music stops a few seconds after suspend on the recent images10:27
ogra_(and there was a unity-mir update from 0.2+14.04.20140108.1-0ubuntu1 to 0.2+14.04.20140114.1-0ubuntu1)10:27
ogra_dholbach, happy birthday old fart !10:31
dholbachthanks ogra_10:32
pittijibel: ah, I'm getting10:52
pittitr: fehlerhaft positioniertes [:upper:]- und/oder [:lower:]-Konstrukt10:52
pitti2014-01-16 11:48:45: Failure: Unknown port type:10:52
pittijibel: with run-adt-test sometimes; fixed in r273, but I wonder why that doesn't always happen10:52
* tsdgeos wins \o/10:54
tsdgeosnow i only need them to accept the patch :D10:55
tsdgeoszsombi: Mirv: https://codereview.qt-project.org/#change,75675 fixes the text_area.qml problems for me11:00
davmor2Morning all11:01
Mirvtsdgeos: simply awesome. I'll cherry-pick that. with luck it would resolve multiple problems.11:07
=== _salem is now known as salem_
Mirvalso, the "random" word here got my attention.. https://bugreports.qt-project.org/browse/QTBUG-3584011:09
MirvI hope 5.2.1 qtdeclarative would fix some of the remaining issues, but before at least that one is fixed I'm not jumping to take another newer snapshot.11:11
pittijibel: sorry, -ECHANNEL; I thought this was #u-quality11:12
=== pete-woods is now known as pete-woods|posti
PaolasHello all!11:43
Paolasplease to help me...11:43
Paolaswhere download link zip for gt-p3100 tablet full 3g wifi for ubuntu edge ?11:44
ubot5You can find the full list of devices, official images, community images, and works in progress at https://wiki.ubuntu.com/Touch/Devices11:45
ogra_Paolas, if it is not on that wiki page then it does not exist i guess11:45
ogra_(also there is no ubuntu edge ... that was a device we never built .... the OS is called ubuntu touch (or ubuntu for phones)11:46
Paolasi dont know...11:47
Paolaswhere link download  ?11:47
=== MacSlow is now known as MacSlow|lunch
=== pete-woods|posti is now known as pete-woods
=== alan_g is now known as alan_g|afk
sergiusensjdstrand, wrt to pre parsing the apparmor profiles; I would need to run the easyprof stuff as well; right?12:53
=== MacSlow|lunch is now known as MacSlow
jdstrandsergiusens: ah, yes, becuase the profiles don't yet exist in /var/lib/apparmor/profiles13:13
sergiusensjdstrand, yup; a bit more complicated than anticipated; also I only got the cache written to using -S and redirecting to a file13:14
sergiusensthey aren't totally equvalent though; which makes me think I may be missing some includes13:14
jdstrandthat may be a bug. jjohansen ^13:16
=== ricmm_ is now known as ricmm
sergiusensremember that I'm doing it from desktop though13:20
jdstrandsergiusens: so, for generating the profiles, you should be able to chroot into the image, install the clicks, then use 'aa-clickhook' to generate the profiles. for it to work though, you should *not* have /sys/kernel/securityfs/apparmor available13:21
jdstrandsergiusens: acutally, you don't have to run aa-clickhook separately, click does that13:22
sergiusensjdstrand, yeah, I was skimming through the python code for the hook13:22
jdstrandsergiusens: but aa-clickhook will generate the profile fine with /sys/kernel/securityfs/apparmor unavailable (it will warn that it can't load them13:22
* jdstrand nods13:23
sergiusenschrooting may provide it's other complications13:23
* sergiusens goes back to drawing board13:24
=== alan_g|afk is now known as alan_g
jgdxxis there a bug for lack of media queries support in UT browser?13:46
ogra_media queries ?13:47
jgdxxogra_, css media queries.13:48
jgdxxcould be I'm running a really old image, or that something else is gebroken13:48
ogra_hmm, the few i used in webapp development used to work13:48
ogra_but that was a while ago13:48
jgdxxogra_, kay. I'll dig some more and file bugs.13:50
dakerjgdxx: they do work13:58
=== jgdxx is now known as jgdx
jgdxdaker, okay, I think it's the text input zoom I got a beef with. It was autofocus and I jumped the gun.14:00
dakerjgdx: that's a normal behaviour14:01
jgdxdaker, yeah, but it's broken http://ubuntuone.com/4db3Gcd43WR6MNN3SFBENg14:02
dakerjgdx: why ?14:02
dakerjuste double tap14:02
jgdxdaker, I'm using an emulator. Would that be a double click?14:03
dakerjgdx: i think yes14:03
jgdxdaker, broken in that the resulting zoom is too great. It introduces a vertical scroll and hides 50% of the text input.14:04
dakerjgdx: can you open the webbrowser-app, and navigate to https://login.ubuntu.com/14:06
jgdxdaker, I'm there14:06
dakeroSoMoN: can you test this ?14:07
jgdxpre focus http://ubuntuone.com/00N9B9SV2sJUgxm9g0pdaQ post focus http://ubuntuone.com/4db3Gcd43WR6MNN3SFBENg14:09
jdstrandsergiusens: fyi, I updated https://wiki.ubuntu.com/Touch/Emulator#Handling_disk_snapshots for ubuntu-emulator14:10
sergiusensjdstrand, looks good :-)14:12
oSoMoNdaker, what exactly do you want me to test?14:18
dakeroSoMoN: what jgdx was saying14:18
dakeroSoMoN: jgdx> pre focus http://ubuntuone.com/00N9B9SV2sJUgxm9g0pdaQ post focus http://ubuntuone.com/4db3Gcd43WR6MNN3SFBENg14:18
dakerthat's a normal behaviour, right ?14:19
oSoMoNdaker, jgdx: the autozoom behaviour on text field focus is normal and expected, however in this specific case it kind of makes the situation worse14:22
oSoMoNI don’t know how this autozoom feature is implemented, maybe we could tweak it14:23
tsdgeosbfiller: who reviews https://code.launchpad.net/~aacid/qtubuntu-camera/no_priv_headers/+merge/201933 now that gusch is gone?14:24
bfillertsdgeos: don't really have anyone yet, maybe rsalveti can take a look. seems like a easy review14:25
tsdgeosbfiller: yeah, basically should be a "if it builds, ship it"14:25
tsdgeosbfiller: built for me, but let's wait for CI :D14:25
sergiusenstsdgeos, do you know why the private headers were originally used? just out of curiosity14:27
tsdgeossergiusens: no clue tbh14:28
tsdgeosi'd go with "copy&paste"14:28
tsdgeosbut it'd be total guess14:28
tsdgeosor maybe it used to be private and then moved to public?14:28
tsdgeoswhich leaves me wondering if it will build with qt5.0 (it builds with 5.2 which is what i was trying to achive since Mirv has killed the  multimedia-private .deb)14:29
tsdgeoslet's wait for CI as said :D14:29
jgdxoSoMoN, daker: the stock browsers on both ios and android will not zoom beyond the text field. E.g. http://ubuntuone.com/70dBf35QkHtPJSFjtffTQK They merely reposition the viewport. Are we ignoring the width meta property perhaps?14:33
sergiusenstsdgeos, yeah, otherwise, the change is fine from my PoV14:33
oSoMoNjgdx, mmm, that’s interesting, it looks like we could do a better job, would you mind filing a bug at https://bugs.launchpad.net/ubuntu/+source/webbrowser-app/+filebug and explaining your findings there (with the screeshots)?14:40
tsdgeossergiusens: CI passed :)14:41
asacsergiusens: hey. so do we have a click build tool or something?14:46
cwayneanyone else see indicator tab bar titles not showing up?14:46
asaccwayne: which build/platform?14:47
cwayneasac: -proposed, mako14:48
asacdavmor2: didrocks: ^^ heard of?14:48
didrocksasac: cwayne: no, I have all of them14:49
didrockscwayne: can be an indicator crashing, won't be the first time :)14:49
aquariushey, dudes. The Google Nexus wireless charger (https://play.google.com/store/devices/details/Nexus_Wireless_Charger?id=nexus_wireless_charger&hl=en)... does it require some sort of OS support? Specifically, will it work right with a Nexus 4 which is running Ubuntu?14:51
didrockscwayne: did you try rebooting?14:51
jgdxoSoMoN, sure thing. Thanks14:51
didrocksoh, a aquarius ;)14:51
aquariusheya didrocks!14:51
ogra_aquarius, i have a zens qi charger and it didnt work the last time i tried, even though it should not have any QS specific thing14:51
ogra_aquarius, but i think you can count on the fact that we'll fix it even if it doesnt14:52
ogra_(btw, dont get a zens for the N4 ... surface is to slippery for it ... it slides down if it is not 100% flat)14:53
ogra_oh, looking at that pic i guess it will have the same slippery issues14:54
HourdI've ordered one of these for mine http://www.amazon.co.uk/gp/product/B00F5UAFDM/14:55
HourdHope it will have enough grip for my super slippy N4, but I have an N5 as well14:56
aquariusogra_, ya, but I'm loath to spend sixty quid on a charger that might not work :)14:57
aquariusogra_, am worried that it needs some sort of weird proprietary driver which we won't have14:58
ogra_thats mine14:58
ogra_aquarius, if andriod has it, we do too14:58
* popey adds to wishlist14:58
aquariusogra_, really? why doesn't yours work, then? I mean, to my mind charging ought to not require a driver because otherwise it wouldn't work if you're powered off :)14:59
ogra_aquarius, i didnt research at all14:59
ogra_i put it on it once, noted it doesnt charge and used the cable14:59
aquariusogra_, oh, so it might not work under Android either? it Just Doesn't Work? :)14:59
ogra_havent checked since15:00
ogra_it works under android15:00
Hourdsome need to be positioned just right15:00
davmor2cwayne: what are you missing?15:00
ogra_and once i find the time i'll try again and fix it on ubuntu too15:00
sergiusensogra_, it might be charging and just a problem with out indicator?15:00
cwaynedavmor2: the tab titles15:00
ogra_sergiusens, could be15:01
davmor2cwayne: I see indicator tabs, I see in app title tabs if that is what you are meaning15:02
davmor2cwayne: not all apps have the titles though I think15:03
cwaynedavmor2: the indicator tab titles15:04
cwaynelike Location15:04
cwaynearen't showing up for me15:04
davmor2cwayne: the only one I don't see is bluetooth but that is because it is disabled15:07
cwayneim seeing the indicators just not the titles, the actual words15:07
cwaynewhen im swiping through them15:07
cwayneyoure obviously not seeing the same problem :)15:08
davmor2cwayne: so I see them on maguro and mako15:08
annerajbanybody have any updates on 4.4 phablet framework?15:11
ogra_annerajb, ongoing15:11
mterryogra_, hello!  So I'm off tomorrow and Monday, but to my knowledge, nested mode is only waiting on a release of unity-system-compositor.  Which I assume has been held up while we sort out the problems getting a promotable image.  Once that is out, maguro should work again.  I tested grouper with latest hybris and it works fine.  So does mako15:11
ogra_with luck there are public images next week15:12
ogra_mterry, yep, tested grouper and maguro here too ... but the MP needs a signoff from the u-s-c team still15:12
annerajbogra_, any repositories to look at?15:13
mterryogra_, which MP?  The one for maguro?  It landed in trunk15:13
ogra_annerajb, i guess watching the mailing list for an announcement from rsalveti would be best15:13
ogra_mterry, oh, ok15:13
mterryogra_, or the session-manager-touch one that actually enables it?15:13
ogra_mterry, session manager is my job15:14
ogra_i thought the u-s-c one was still waiting15:14
rsalvetiannerajb: we're working to setup a gerrit instance as well together with the new repos15:14
mterryogra_, it's waiting to actually land in trusty.  jenkins hasn't packaged it up yet15:14
annerajbrsalveti, :D thanks15:14
ogra_still oending review15:14
ogra_oh, but merged15:15
* ogra_ needs to learn to look at the status, not the merge requests 15:15
attentebfiller, hi15:22
bfillerattente: hey15:23
attentebfiller, is there some way to determine the default osk layout if the gsettings value is empty?15:23
bfillerattente: can I ping you in a bit, on a hangout right now. have a bunch of htings I want to discuss with you actually15:24
attentebfiller, sure15:24
=== the-gibs1n is now known as the-gibson
balloonsping mardy15:34
=== alan_g is now known as alan_g|afk
=== alan_g|afk is now known as alan_g
=== vying is now known as Guest60302
=== gatox is now known as gatox_lunch
=== fisuk1 is now known as fisuk
om26erhow long should it take for unity to show up in the emulator ?16:09
ogra_om26er, 10-15min on the first boot16:09
ogra_subsequent ones are minimally faster16:09
om26erogra_, so  phablet shell login is expected much sooner ?16:10
ChickenCutlasspitti, hi there.  Is there a way to get EOF using g_io_watch?16:18
pittiChickenCutlass: hm, I'm not familiar with that; perhaps it counts as G_IO_ERR condition?16:23
pittididrocks: so I hear you give some landing training sessions, the next one tomorrow?16:24
didrockspitti: waow, news are going fast ;) I'll send an email announcing the piloting program officially tomorrow morning, then asac and I defined some batchs by team to ramp up16:26
pittididrocks: right, julian asked me to join16:26
pittididrocks: I'll be AFK tomorrow afternoon, but if you do morning sessions, or one next week, could I join one?16:26
didrockspitti: the QA team won't be part of the first batch, but you are welcome to join (but the first one will be on thursday, not tomorrow)16:27
* didrocks can't type16:27
pittididrocks: I'm happy to go later; I don't think it's that urgent16:27
didrockspitti: I'll keep you posted ;)16:27
didrocks(first, email to the ML tomorrow ;))16:28
mterryogra_, do you know anything about inducing android driver events?  (I want to induce power button press in autopilot tests)16:30
ogra_mterry, why would that be android ? you should be able to just get events from /dev/input/*16:31
ogra_mterry, on mako i get power button events on /dev/input/event016:31
mterryogra_, sure, I can go through udev...  Is there an example of simulating those?16:32
ogra_ah, no idea16:32
asacdidrocks: nice. seems the management is getting better at forwarding/communicating :)16:32
=== dandrader is now known as dandrader|afk
popeyooh, emulator took 7 mins to get from "run" to unity appearing16:36
ogra_popey, yeah, subsequent boots get better with every boot16:38
=== gatox_lunch is now known as gatox
davmor2I keep thinking I should setup the emulator then I remember I got to much other stuff going on :D16:42
popeyhow does one shutdown the emulator nicely?17:00
tsdgeosjhodapp: have you seen https://bugs.launchpad.net/ubuntu/+source/qtvideo-node/+bug/1267818 ?17:00
ubot5Ubuntu bug 1267818 in qtvideo-node (Ubuntu) "Please remove qtmultimedia private headers usage to work with Qt 5.2" [Critical,New]17:00
ogra_popey, the US way is to use a gun17:01
ogra_popey, the pacifist way is probably poweroff -f17:01
bfillerattente: hey17:03
attentebfiller, hi17:03
bfillerattente: so to answer your question, we've introduced a new key in gsettigs called active-language and it defaults to "en"17:04
bfillerattente: it's in this branch that hasn't been merged yet: https://code.launchpad.net/~thomas-moenicke/ubuntu-keyboard/ubuntu-keyboard-active-language/+merge/19929217:04
attentebfiller, ok17:05
bfillerattente: also can you add the UI for the following as they are supported: auto-completion, key-press-feedback, spell-checking, predictive-text17:06
bfillerattente: as well as the keyboard languages, enabled-languages key17:07
bfillerattente: only open issue is all the keyboard layouts are separate debs now and we don't have a way to install them dynamically17:08
bfillerattente: so they may have to be installed by default on the image for the short term17:08
attentebfiller, ok17:09
attentebfiller, i'm wondering if the way we're finding those plugins is correct17:09
attenteright now, we're looking in the /usr/share/maliit/plugins/com/ubuntu/languages directory17:10
attentewhich is basically a hardcoded path17:10
bfillerattente: your looking at trunk of ubuntu-keyboard right? (the plugin code hasn't been released yet but that's pending)17:11
attentebfiller, yes17:11
bfillerattente: any suggestions on how to better do it? would be awesome if the plugins could be click packages somehow and installed dynamically when the user selects that language17:12
bfillerattente: keep in mind they install hunspell and predictive text dictionaries as well as the plugins, not sure where those get installed17:13
attentebfiller, no idea. i'm not too picky about the current method but if there's a better way, we can change to it17:14
attentebfiller, if hunspell and predictive text dictionaries are installed in the same directory, that might be problematic though17:14
seb128bfiller, btw in case you didn't notice, the most recent settings landing (like a week ago) enabled some of the osk options17:15
attentebfiller, however we already do some filtering to make sure non-sensible plugins don't get listed as well17:15
bfillerattente: so do you dynamially build your keyboard language UI based on what plugins it finds in that directory? or is it just a hardcoded list?17:17
attentebfiller, we build it dynamically, but the directory path is hard-coded17:17
attentewe try to do some filtering based on the contents of the xml, so things like the phonenumber plugin aren't added17:18
attente(somehow the showcase plugin made it through though)17:18
bfillerattente: so17:19
bfillerattente: looks like that is slightly changed in trunk as I just installed those packages17:19
bfillerattente: the language plugins are installed in /usr/share/maliit/plugins/com/ubuntu/lib/<language>17:20
bfillerattente: I think the xml in /usr/share/maliit/plugins/com/ubuntu/languages is not used anymore and will be removed17:20
attentebfiller, ok17:21
attentebfiller, what are the package names for the plugins?17:21
bfillerattente: ubuntu-keyboard-english, ubuntu-keyboard-german, etc..17:21
ogra_dont forget ubuntu-keyboard-klingon17:22
ogra_else pitti cant type17:22
ogra_(he speaks it fluidly)17:23
pittinuQneH ?17:23
bfillerattente: if you install the debs from here you can see: http://jenkins.qa.ubuntu.com/job/ubuntu-keyboard-trusty-armhf-ci/120/artifact/work/output/*zip*/output.zip17:23
pittinah, as for keyboard layouts, there are only two: "US" and "broken" :)17:23
bfillerattente: I'm requesting a release for ubuntu-keyboard trunk today (hopefully) that will contain this changes17:23
bfillerogra_: lol17:23
attentebfiller, that link doesn't seem to work for me17:24
bfillerattente: right, let me get a you a new one17:24
bfillerattente: http://jenkins.qa.ubuntu.com/job/ubuntu-keyboard-trusty-armhf-ci/139/artifact/work/output/*zip*/output.zip17:25
bfillerattente: you'd need to install ubuntu-keyboard, ubuntu-keyboard-data, and whatever ubuntu-keyboard-<lang> packages you want to test17:25
attentebfiller, ok, sounds good, thanks17:27
attentebfiller, i guess at some point we might need a way to get the list of packages17:27
attenteso that we can do installation on demand17:28
bfillerattente: agreed, but they'd need to be click packages as we can dynamically install debs because of r/o filesystem17:29
attentebfiller, ah, ok makes sense17:29
bfillerattente: think for now we'll just preinstall some and if the user wants others they'll have to manually install additions until we figure it out17:30
=== bjf[afk] is now known as bjf
bfillerattente: as long as your UI just dynamically gets the list of installed langs from /usr/share/maliit/plugins/com/ubuntu/lib/ should be ok for now17:31
bfillerattente: or another option: your UI shows all the planned supported languages and when the user selects one you check if it's installed and if not prompt them to install it (which would be manual currently)17:33
bfillerattente: ah, I see you already have the keyboard settings in the UI :) When did that land?17:34
attentebfiller, i'm not sure, it was a MP just sitting around for a while if i remember, it just needed merging (which i guess seb128 did recently)17:36
bfillerattente: looks like it's just missing spell-checking17:37
=== dandrader|afk is now known as dandrader
attentebfiller, how do we check what spell-checking plugins are available?17:38
attenteor do we just assume that every display language is a spell-checking language?17:38
bfillerattente: I think we don't need the spell-checking-language thing anymore. when you switch to a different keyboard layout the spellchecking for that lang is automatically enabled17:39
bfillerit's actually a dependecie of the ubuntu-keyboard-<lang> package - it depends on the proper hunspell-<lang> package17:40
bfillerso the spell checking dynamically changes when you change the keyboard language17:40
attenteok, so it's just the check box then, it sounds like17:41
bfillerattente: exactly17:41
attentei'll add that in now then17:41
bfillerattente: thanks17:41
bfillerattente: one other thing - when the user changes the "Display Language", should we automatically select the corresponding keyboard layout and set the active-language key to it?17:42
bfillerattente: would be weird if the display language was switched to say German but the keyboard stayed english17:43
attentebfiller, good question... i guess if the display language was switched you'd assume the spell-checking would also switch17:45
attenteand since that's tightly bound to the current keyboard layout, i guess you'd expect it to17:45
bfillerattente: yes, but most importantly you'd assume the keyboard layout to switch17:45
bfillerattente: so to make that happen just set the com.canonical.keyboard.maliit.active-language when switching the Display lang and it should just work (once these branches land)17:46
attentebfiller, ok, sounds good17:47
bfillerogra_, pitti : do you know how we are supporting changing the display language? looks like we are only seeding language-pack-en17:49
bfillerare lang packs for the langs you switch to required to support them fully?17:50
ogra_blaroche, we seed a  lot of langpacks17:50
ogra_bfiller, ^^17:50
bfillerogra_: I don't see that in the seed17:51
ogra_bfiller, language is set by ~/.pam-environment17:51
pittibfiller: merely installing the language pack doesn't set the default17:51
ogra_bfiller, http://cdimage.ubuntu.com/ubuntu-touch/daily-preinstalled/20140115/trusty-preinstalled-touch-armhf.manifest17:51
pittieither that, or system-wide by localectl (or writing /etc/default/locale)17:51
ogra_search for language-pack17:51
ogra_pitti, we dont use that anywhere in the phone images17:52
ogra_its all per user via pam17:52
pittiogra_: /etc/default you mean?17:52
bfillerogra_: where are the lang packs seeded? looking at lp:~ubuntu-core-dev/ubuntu-seeds/ubuntu-touch.saucy17:52
ogra_system should stay on english17:52
pittithen ~/.pam_environment it is17:52
ogra_yep :)17:52
ogra_bfiller, hmm, i see it here in my local branch17:53
ogra_ogra@styx:~/Devel/seeds/ubuntu-touch.trusty$ grep language-pack touch|wc -l17:53
ogra_6 langs seeded17:53
ogra_en de es fr pt zh17:53
bfillerogra_: which branch has that?17:54
ogra_bfiller, oh, i see, you pointed to saucy :)17:54
bfillerogra_: arg, didn't mean too (:17:54
bfillerlet me check trusty17:54
ogra_they even have their own section17:55
bfillerogra_: sorry, my fault looking at old seed17:55
ogra_(in the seed file)17:55
bfillerI see them now17:55
bfillerogra_: do we have plans to add others dynamically? I'm in same boat with OSK keyboard langs/plugins. I don't want to seed all of them but no way to dynamically install because they are debs17:56
ogra_bfiller, i suspect we wont, but i could imagine we start building regional images at some point so you only have a fraction17:56
ogra_asac, ^^ ideas ?17:56
asacmaybe regionalizations could be a DLC plugin available in click store for OSK?17:58
asaci think its exactly the DLC concept17:58
ogra_asac, it would have to put a lot of stuff across the readonly filesystem17:58
asacyou have an app (keyboard could also be an app), and you provide plugins/extensions also through the store17:58
asacogra_: well, i guess that depends on the keyboard software17:59
ogra_or we need to change a lot of the system to accept it differenntly17:59
asacmight need refactoring so it can live with plugins in click17:59
ogra_asac, thats about langpacks17:59
ogra_not just kbd17:59
=== alan_g is now known as alan_g|EOD
ogra_if we use different places for locale stuff we have a lot to change in the rest of the system18:00
asacogra_: can you download new languages in adndroid?18:00
asacor only whats installed by default?18:00
ogra_if we dont we end up with a ton more writable places18:00
asacanyway. really have to step out for 1h or so18:00
ogra_asac, i think they are preinstalled and there are regional images ... by continent or so18:01
ogra_asac, bfiller, one step we need to take is definitely to create touch specific langpacks ... that will shrink them a lot in size18:01
ogra_which might even enable us to ship them all18:02
ogra_(today we ship a lot of desktop translations we dont use at all)18:02
bfillerogra_: good point18:03
bfillerogra_: it might be possible for the osk plugins to be clicks, but we'd need to make some changes to support that18:03
popey#132 is built18:04
bfillerogra_: the disk consuming size in the osk plugins is the spell checking stuff which gets pulled in by hunspell18:04
popeyogra_: do you have a maguro you can dogfood?18:04
ogra_right, i'm not too concerned about osk ... more about the whole langpack stuff18:04
popeyunless davmor2 is still about?18:04
bfillerogra_: and the predictive text dictionary, otherwise it's just a few qml files18:04
davmor2popey: I am but I'm about to go for tes18:04
AmbiousHi guys, quick question. I'm trying to build for deb and failing at the breakfast. There's obviously no "phablet" branch in the CM git, which only has cm11 and cm10.2, while the ubuntu touch git highest branch is 10.1. Is there any way around this?18:04
ogra_popey, not atm, my maguro has a ton of hacked up stuff i cant lose atm18:05
davmor2tea even18:05
ogra_(nested Mir sessions)18:05
=== ricardodrosales is now known as ricdros
davmor2I can do the dog food after that though18:05
popeyogra_: no worries18:05
popeydavmor2: thanks18:05
davmor2and with that tea18:05
ogra_bfiller, right, and hunspell should even be dragged in by langpack deps18:05
ogra_davmor2, tea with tess ?18:05
ogra_does your wife know ?18:05
bfillerogra_: that's true18:05
pittibfiller, ogra_: no, langpacks don't depend on things like dictionaries; you want "check-language-support" from language-selector-common for that18:06
ogra_pitti, argh, right, they used to back in the days18:07
pittiogra_: no, never language-pack-*; we used to have language-support-* metapackages, but they got too impractical18:07
ogra_right, thats what i meant18:07
pittiso we switched to a more dynamic way of "install everything that check-language-support says you are missing"18:07
ogra_pitti, right, wont work if we want to preinstall it18:08
ogra_i guess we just can seed the spellcheckers then18:08
ogra_i think the first step needs to be to generate langpack-touch-$lang for our stuff ... so we can drop the gnome ones18:09
ogra_and since thats a new package anyway we should probably discuss to simply add deps for osk packages and spellcheckers to them18:09
ogra_after all they are only needed at build time18:10
ogra_its not like you install anything dynamically on your phone18:10
pittiwell, it seems easier to add check-language-support to livefs-build?18:10
ogra_pitti, well, it would have to learn about touch langpacks18:11
pittithat'll select the spell checkers, dictionaries etc. that we need based on what's installed, without the need to maintain a separate set of dependencies18:11
pittiogra_: yes, touch langpacks is an independent matter18:11
ogra_is it able to run with something like --all ?18:11
ogra_or do we need to supply a list18:12
pittiyou can iterate over all the languages that we install18:12
pittifor l in en de [...]; do check-language-support -l $l; done18:13
pittibut if you don't call it with any arguments, it just prints out everything for "your" system18:13
pittii. e. based on the locales and software you have installed18:13
pittii. e. in livefs-build chroot, something like "apt-get install `check-language-support` should DTRT18:14
ogra_i have asked to get language stuff on the sprint agenda so it can be discussed there18:14
ogra_i'll come back to you once we have solved the langpack-touch- bit :)18:14
pittiogra_: langpack-o-matic supports building different flavours (like -gnome, -kde, or now -touch)18:16
pittiwe mostly need a heuristic to classify a package for "gnome", "kde", "touch", and "base" (aka "everything that's shared between flavours)18:17
ogra_pitti, i'll invite you to the discussion (via hangout or so) once it happens18:17
ogra_(or are you at the core spring end of the month)18:17
pittiogra_: FYI, http://bazaar.launchpad.net/~ubuntu-langpack/langpack-o-matic/main/view/head:/lib/pkg_classify.py#L111 is that logic18:18
* ogra_ looks 18:18
pittiit currently looks at the dependencies and anything gtkish or gnomeish goes into -gnome, etc.18:18
ogra_we might rather need something like parsing the seeds or so ... i think think we have any such marker on the packaging level for touch18:19
ogra_*i don't think18:20
ogra_and even for that we would only need it for gui ... since we only translate the UI session18:20
pittiogra_: something like "qt.*ubuntu" dependency?18:20
pittie. g. qtdeclarative5-ubuntu-ui-toolkit-plugin18:21
ogra_hmm, perhaps ...18:21
pittiit could also be several heuristics which cover "QML", "platform-api", etc.18:21
ogra_yeah, that sounds like it18:21
pittiit also has a list of "overrides" which fix classification for particular packages where the heuristics is wrong18:22
ogra_click apps ship their translations themselves ...18:22
ogra_it should boil down to a really small set of translations in the end18:22
=== dandrader is now known as dandrader|afk
pittiunfortunately we don't use tasks for those packages, otherwise we could look at "Tasks:"18:23
pittiwell, anything which is in the apt package record, I'm sure we'll find something18:23
ogra_well, once the stuff is in main we can merge the touch seed into the normal ubuntu seed18:24
ogra_that should make tasks possible18:24
ogra_iirc tasks dont work atm because of the stuff being in universe18:24
mterrypitti, hello!  I'm looking at making an autopilot test for the shell that needs to simulate (or actually have) a power button press.  Is there an example of that in another package I could steal?  I looked at using udev, but I don't think it goes through udev?  That event might just be android-side18:24
pittimterry: sorry, on my way out18:25
mterrypitti, no worries18:25
pittimterry: how does it listen to the power button event?18:25
pittii. e. dbus/binder/logind/etc/18:25
pittimterry: can you mail me?18:26
mterrypitti, powerd gets it.  I think via android event system18:26
pittigood night everyone (sorry, need to run)18:26
mterrypitti, sure18:26
pittimterry: ok, I don't think we have a ready-made solution for that; can you plase point me to the code that listens to it?18:26
ogra_pitti, events can be read from /dev/input/event* ... there is surely code that uses that18:27
ogra_in AP18:27
ogra_(note this is user readable on phones)18:28
mterryogra_, but I was monitoring udevadm, and I didn't see any from it.  Are you sure that it's not just handled in android?  powerd listens directly to android18:32
ogra_mterry, i was cat'ing /dev/input/event0 and could see garbage for each button press18:34
davmor2and back18:35
ogra_there should be an xev like way to get something useful from the garbage18:36
=== dandrader|afk is now known as dandrader
sforsheemterry: you might be able to synthesize a power button press by using uintput to create a new input device19:06
sforsheeassuming that the input stack has the smarts to pick up new input devices as they appear19:06
werty100Is make sense to PORT ubuntu to my Xperia U?¿19:16
jjohansenjdstrand, sergiusens: hrmmm I'd need to see both profile dumps to have an idea why they are different19:17
shiggitay_ogra_, hello again... possibly obvious/stupid question: once the 4.4 HAL is completed and ported how difficult would a port of UT for the LG GPad 8.3 be to accomplish?19:19
Fuslhey guys... does someone know how long the i9100 takes to boot the ubuntu touch for the first time?19:33
popey|---------------------------------| That long19:33
Fuslin hours?19:33
popeyI don't know, but it's not a fast device, so I expect some minutes19:34
Fuslit already takes 20 minutes and it still showing the "Galaxy SII" screen19:34
Fusl(with the yellow warning triangle)19:34
sergiusensballoons, hey; I didn't add a calendar; the line is stopped ;-)19:35
balloonssergiusens, yes, I forget / didrocks reminded me19:35
Fuslwhat i exactly did was: flashing the cwm with heimdall, installing cm-10.1, did a factory reset and then installing saucy-preinstalled-armel-i9100.zip and then saucy-preinstalled-phablet-armhf.zip via clockworkmod... then i rebooted and thats when it already takes 20 minutes for this screen: http://goo.gl/X05Tew19:37
boikoawe_: is the ofono in the images supporting multiple calls already?19:49
cwaynestgraber: i hope i captured the 3 options correctly :)19:50
rickspencer3hey, for the first time in MONTHS, my phone froze, but I can shell into it19:50
awe_boiko, it should, the support landed in ofono 1.12+bzr6846-0ubuntu119:51
rickspencer3anything I can do to help figure out what's up and log a good bug?19:51
boikoawe_: nice! I will flash today's image and try that one19:51
awe_boiko, ok!19:51
boikoawe_: thanks19:51
sergiusensrickspencer3, checking the unity8 logs would be my first grab20:01
Fuslreflashed it on my phone but still doesn't work :(20:02
Fuslcan i somehow use the usb cable to grab useful information out of it? (it still stucks on the galaxy s2 boot logo)20:02
rickspencer3sergiusens, will do, can you tell me which logs, specifically?20:04
rickspencer3I don't see anything in /var/log20:04
sergiusensrickspencer3, $HOME/.cache/upstart/unity8.log20:04
rickspencer3no wonder :)20:05
sergiusensalso grab a /system/bin/logcat dump20:05
davmor2meh sergiusens beat me to it :)20:05
rickspencer3sergiusens, just the latest unity log?20:06
sergiusensrickspencer3, yeah, the rotation thing should be from previous runs20:06
davmor2rickspencer3: the other one that might be useful is if you know what app was running just before the crash.  That will likely be under .cache/upstart/ too.  Also is there a crash report in /var/crash too?20:07
rickspencer3davmor2, there is no recent crash file20:16
rickspencer3but there are tons of files in .cache/upstart20:17
sergiusensrickspencer3, every app is started with upstart20:18
rickspencer3sergiusens, I know20:18
rickspencer3but there is no way for me to know from that list which one triggered the crash20:18
rickspencer3sergiusens, maybe we should do something with upstart where we start each app under some kind of confinement system20:18
rickspencer3I'll talk to jdstrand, maybe app armour can help here20:19
sergiusensrickspencer3, if there is no crash file it might not have been a crash though20:19
* jdstrand reads backscroll20:19
rickspencer3sergiusens, yeah, I got the files you suggested, I'll log a bug just in case20:19
rickspencer3jdstrand, sorry, didn't mean to ring you, I was teasing sergiusens20:19
sergiusensmight be some deadlock; reason for suspecting unity8/mir20:19
rickspencer3need to go to a call20:20
=== dpm_ is now known as dpm
rinakui'm using ubuntu touch for the first time and i'm wondering if there's any documentation about the basic usage of the phone21:00
rinakusuch as how to import contacts that I exported from my previous phone21:01
rinakui can't find that on the wiki21:01
achiangdoanac: ping, around?21:25
doanacachiang: yes21:25
achiangdoanac: hey, i'm looking at ubuntu-test-cases/touch and had some questions...21:26
achiangdoanac: is it common for the packages you are testing to have a separate branch for their test cases, vs. as part of the package itself?21:26
achiangdoanac: context is, i'm looking at our customization work, and we have a code branch (lp:savilerow) and a separate test case branch21:27
achiangdoanac: i think the only consumer of the test case branch is ubuntu-test-cases...21:27
doanacachiang: its a little out of the ordinary, but your specific test is a little out of the ordinary21:27
doanacyou thinking about moving it into our repo?21:27
achiangdoanac: i'm wondering how much heartburn it would cause to co-locate our test cases into our code branch21:28
doanacachiang: i'd have no objections.21:28
achiangdoanac: the idea being, someone would branch savilerow and have both code and tests21:28
achiangdoanac: one drawback is that the code branch can take a bit longer to pull21:28
achiangdoanac: maybe 30 seconds vs the 3 seconds it takes to pull the test branch21:29
achiangdoanac: it also of course, takes more disk space21:29
doanacreally? what's in the branch?21:29
cwaynebut we'd still need the devices setup to run these tests anyway21:29
achiangdoanac: we have images, etc. that are needed for the customizations in the code branch21:29
cwaynethere's no super-simple way to say 'just run custom tests' on a pristine system21:30
achiangdoanac: so i'm thinking what we'd do in the setup is to pull the entire branch with co-located code, data, and tests; and then just push the tests directory over to the SUT21:30
cwaynebut the tests are essentially useless without the rest of the framework/utah/autopilot/et al21:31
achiangdoanac: but before we go down that route, wanted to get a sense from you whether there are any environmental limitations about disk space where you do the bzr pull, etc.21:31
doanacachiang: not really. we could also switch to lightweight checkouts instead of running bzr-branch in our tests if needed.21:32
achiangcwayne: i'm really just talking about changing tests/customizations/setup.sh in the ubuntu-test-cases/touch package21:32
doanacplars: what do you think ^^^21:32
cwayneachiang: yeah, but i dont see a clear benefit to having the cases in our trunk though21:32
cwaynei agree that it's weird, but i don't know that it'll really fix anything to move them21:33
achiangcwayne: oh, now i am understanding your point... our test cases are very specific to utah/autopilot?21:33
plarsgive me a minute to catch up21:33
cwayneyeah. its not as simple as branch lp:savilerow and now youre all set up to run the custom tests21:34
cwayneyou need to provision the device, install autopilot stuff, then push it over, then run it21:34
achiangcwayne: i mean, any downstreams would have to provision the device anyway21:35
achiangcwayne: so that part doesn't go away for our downstreams, whether it's an OEM customer or a community remix21:35
cwaynebut they'd still need to then branch lp:ubuntu-test-cases/touch anyway21:36
achiangi see21:36
cwaynetheres no option for simply just branching savilerow and having the tests run simply21:36
cwayneat least that i know of21:36
plarsare these all autopilot tests?21:36
cwaynei don't think they *need* to be per se21:36
cwaynebut they are, as we were trying to get it to fit into the existing infrastructure easily21:37
achiangcwayne: well, i am also mixing up some other ideas in this conversation... i am actually more concerned about our own devs (or OEM/downstream devs) adding a customization and forgetting to add a test case21:37
plarsmost of the autopilot tests can be run locally without any of our stuff, the biggest difference is that you would have to unlock the screen yourself, and you wouldn't have all the results collected if you run them by hand21:37
achiangso having tests in a separate branch makes it easy to forget21:37
plarsdo the developers know how to build the image with their changes and run the tests?21:39
=== salem_ is now known as _salem
achiangplars: well, jenkins would spit out the image for a dev21:41
cwaynejenkins would spit out the custom tarball that is, right?21:41
plarsbut that's after it's merged21:41
achiangplars: we might have to write some docs for our downstreams on how to build an image with their changes and run tests, so you can assume that problem is theoretically solvable21:43
plarsachiang: combined with that, I think it sounds useful21:43
achiangi'm going to go for it then21:44
* shiggitay_ pokes ogra_ 21:46
=== shiggitay_ is now known as Shiggitay
achiangdoanac: plars: cwayne: thanks for the help. i'll see about sending up an MP to you guys soonish21:47
doanacachiang: thanks21:47
cwayneplars: while we're on the subject, there has been a quite high number of failures in touch_custom recently, any ideas why?21:48
cwayneat least a few of them with this:21:48
cwaynenext_index = (current_index + 1) % self._get_number_of_tab_buttons() ZeroDivisionError: integer division or modulo by zero21:48
plarscwayne: there have been quite a bit in the other builds too on and off, but there have always been more in the custom builds - you were running down some bugs last we discussed it, or did those get addressed already?21:49
cwayneplars: so i have the ubuntu-ui-toolkit and gallery-app ones nailed down21:49
cwaynethose are because of the way those apps are launched (i.e. not with the right environment, so it's not loading the custom theme)21:49
cwaynethose *used* to be the only failures, now i'm seeing a lot of random, erratic ones21:50
cwaynealmost all of them fromt he last run seem to be failures on getting self._get_number_of_tab_buttons()21:50
plarscwayne: I don't think I remember seeing that ZeroDivisionError in any of the non-custom builds21:50
cwayneplars: it looks like something happened at build 12821:53
plarscwayne: odd, both 127 and 128 used the same android and ubuntu?21:54
cwayneplars: must have been rebuilt because of the custom tarball then21:55
cwayneare these fresh installs, or updates?21:55
plarscwayne: fresh installs21:55
cwaynehuh there goes that theory then21:56
cwayneplars: would you be able to kick off a test run?21:57
cwaynethere's something fishy, but i can't quite figure out what it would be21:57
plarscwayne: sure, it'll just rerun the latest image21:57
plarscwayne: and it will replace the results that are already there. Is that ok?21:57
cwayneplars: yep21:57
cwayneim going to try and set it up to run them locally here as well21:57
cwaynemight give me more insight on wtf is happening :)21:58
plarscwayne: actually, no I can't21:58
plarscwayne: looks like there was a new build that just started21:58
plarscwayne: the tests just started on their own, so they should start showing up soon21:58
cwayneplars: well that's just as good i suppose :)21:58
cwayneplars: so to get this setup locally, all i'd need is lp:ubuntu-test-cases/touch right? and then just installing some deps and whatnot (utah et al)21:59
cwaynelike is there any magic that's contained in jenkins, or does it just branch that and run the contained scripts21:59
plarscwayne: pretty much, you'll need utah from ppa:utah/stable22:00
plarscwayne: android tools, etc of course22:00
plarscwayne: there are two main scripts you would care about22:00
plarscwayne: provision.sh - look at the args to it, you'll also want to pass it the network config for your local network22:00
plarscwayne: the other is jenkins.sh, which you'll want to call with your device id (if needed) and the test to run (ex. camera-app-autopilot)22:01
cwayneplars: so there's no easy way to run *all* of them?22:01
plarscwayne: when you run a test that way with jenkins.sh, you'll end up with a directory called clientlogs with the logs, yaml of results, etc22:01
plarscwayne: not really, the tests don't all run in one go as it is22:02
plarscwayne: they do the provisioning, reboot, run the first set of tests, reboot, second set, reboot...22:02
plarscwayne: they are separate jobs22:02
plarscwayne: you could, of course, just construct a simple script that runs them all in succession, but if you want to save the results of each, make sure to backup the clientlogs directory between each run22:03
cwayneplars: now whats the difference between running jenkins.sh, and just running phablet-test-run22:03
plarscwayne: jenkins.sh does most of the same stuff, but it uses utah to kick off the test cases individually (which is how we see the individual testcase results in the dashboard). Eventually phablet-test-run will be called directly, there's some stuff in flight to make that happen22:05
plarscwayne: the biggest difference is that with jenkins.sh, your screen will get unlocked for you automatically, and it will pull the results off at the end22:05
cwayneplars: ah, ok22:06
plarscwayne: likewise, provision.sh is a wrapper around phablet-flash, phablet-click-test-setup, phablet-config, etc22:06
cwaynedoes phablet-click-setup just install all of the -autopilot debs?22:07
plarscwayne: you can still use phablet-test-run directly once you've provisioned like this, there's nothing really magic about it, it just simplifies it down so that the jenkins jobs themselves don't contain a lot of magic22:07
cwayneok cool, that's what i was hoping for22:08
plarscwayne: phablet-click-test-setup pulls bzr branches for the click package you specify and sets it up so that autopilot can be used to test against the right version. It's part of phablet-tools22:08
cwayneah right, i feel like i knew that (or should've :P)22:11
cwayneplars: and these tests are run as the phablet user, correct?22:11
plarscwayne: yes22:12
cwayneplars: just in case your curious, i think the touch_custom suite should be fixed (it was a renaming/system-image issue that's now fixed) :)22:57
achiangcwayne: ooh, another dep on our naming? can you add it to the spreadsheet we've been working from?23:01
achiangplars: are the touch test cases in python2 or python3?23:02
plarsachiang: python2 I believe.  I didn't write any of them, but last I heard the conversion of autopilot to python3 was still a wip due to some deps23:03
plarscwayne: awesome23:03
achiangplars: ok, thanks23:03
plarscwayne: so the next build should be improved?23:03
sergiusensachiang, plars it's all py223:07
achiangsergiusens: thx23:09
cwayneplars: yes, it should be better23:13
cwayneachiang: it must have built right in the middle of the renaming stuff, as it got custom-sevilerow-trusty v1, but i just reflashed and it had the proper custom-savilerow-trusty v123:14
sergiusensballoons, btw, I don't know enough qml to make that feed api mockable in shorts23:14
achiangcwayne: ok23:14
josehey guys! I'm having some problems on trusty while trying to sync syncevolution with google contacts, external transport failure (local, status 20043) is what I get23:49

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