=== Guest22182 is now known as StevenK
=== nixterna1_ is now known as nixternal
=== nixternal is now known as Guest44311
=== nenolod is now known as moogle
=== elky is now known as Guest19067
=== ryanakca_ is now known as ryanakca
=== nixternal_ is now known as nixternal
micahgOdd-rationale: bughugger?, Adavanced search?00:50
=== Guest85001 is now known as Hobbsee
=== Hobbsee is now known as Guest60069
=== Guest60069 is now known as Hobbsee
=== freeflying is now known as ZhengpengHou
=== ZhengpengHou is now known as freeflying
=== ripps is now known as ripps|sleep
=== golddragon24 is now known as golddrogon24
=== golddrogon24 is now known as golddragon24
jetienneq. i would like to setup a small repository, it will be like 3-4 deb in there. easyness to setup is important. where should i look ?07:52
jmarsdenjetienne: http://wiki.debian.org/HowToSetupADebianRepository07:55
jetiennejmarsden: any suggestion on a easy way ?08:15
jmarsdenjetienne: It all depends on what you mean by easy.  mini-dinstall, maybe?08:16
jetiennejmarsden: ok thanks will look08:16
jmarsdenYou're welcome.08:16
jetiennejmarsden: additionnaly i got this script doing a .deb which im trying to port, do you have a good link on the meaning of all the files in debian/* ?08:18
jmarsdenThe New Maintainers Guide, and man debhelper08:21
jmarsdenYou're welcome.08:24
jmarsdenjetienne: For basic packaging info for Ubuntu, see https://wiki.ubuntu.com/PackagingGuide/Complete   # but if you are here you probably already know this :)08:25
hakaishiHello everyone! Anyone up to advocate/review qt-shutdown-p? - I corrected the desktop file, the copyright file and the docs file as jcfp asked. I think there shouldn't be any more issues. http://revu.ubuntuwire.com/p/qt-shutdown-p08:57
=== Guest98536 is now known as jussi01
=== jariq is now known as jariq_indagame
gnomefreakanyone wish ideas on what package i would file bug agsinst for my backspace not working correctly. You can no long hold down backspace you have to hit it one time pre letter/number09:32
=== Guest8650 is now known as Zic
gesergnomefreak: known bug, System -> Preferences -> Keyboard, re-enable "Repeat Keys" (and don't let the "Delay" slider on its minimum value if you don't want each key press twice)10:14
gnomefreakgeser: thanks ill take a look at that10:15
=== Pricey is now known as pricey\
=== pricey\ is now known as pricey|
=== pricey| is now known as Pricey
gnomefreakgeser under general  repeat keys with it enabled and slider about halfway it still doesnt let me use any key by holding it down am i in right place?10:19
gnomefreakah i got it10:20
gnomefreakthanks geser10:20
dupondjehttp://packages.ubuntu.com/lucid/sabnzbdplus => any idea why it needs python less then 2.6 ?11:48
dupondjein control file there is nothing about that ...11:48
geserlook at debian/pyversions11:50
dupondjehmz, there are the versions that are supported ?11:53
fabrice_spdupondje, also look inside the .py files: sometime, some python2.5 is referenced11:55
dupondjeyep saw that already :)11:56
dupondjebut in pyversions you can put for example 2.5 and 2.6 ?11:56
dupondjebut why does it conflicts 2.6, should it just allow existence of 2.6 ? and use 2.5 ?12:03
om26erI am getting this error while building http://pastebin.org/8454512:30
randomactionom26er: looks like your orig.tar.gz is broken12:32
om26errandomaction, I tried it twice12:32
om26erahh I made a mistake.. randomaction thanx I found it12:34
geserslytherin: are you working on merging libpdfbox-java? it could get moved to universe after the merge12:37
slytheringeser: Not as of now. But I believe the Ubuntu changes should be merged in Debian.12:38
geserok, will look later at it in detail and either merge or sync12:38
=== jariq_indagame is now known as jariq
shriekoutplease, advice...12:56
om26ersorry got disconnected. was I answered?13:01
slytherinom26er: no13:02
om26erslytherin, I don't have headers installed can that somehow be related?13:03
slytherinom26er: I was not part of previous conversation. So I don't know what you are talking about.13:03
om26erslytherin, http://pastebin.org/8455013:04
slytherinom26er: what are you trying to do exactly?13:05
om26erslytherin, I am building gparted from scratch and get the error13:06
om26er*following the packaging guide13:06
slytherinom26er: So did you create the source package form scratch?13:08
om26erslytherin, yes13:09
slytherinom26er: In that case looks like the build dependencies are not correct.13:10
om26ersudo apt-get build-dep gparted?13:11
slytherinom26er: You are using pbuilder. apt-get build-dep is for building package without pbuilder13:12
slytherinom26er: check the build dependencies specified in debian/control file of your package13:13
om26erslytherin, Build-Depends: debhelper (>= 7), autotools-dev13:13
slytherinom26er: that is certainly not sufficient13:14
slytherintake a look at current gparted source package.13:14
om26erslytherin, also Depends: ${shlibs:Depends}, ${misc:Depends}13:14
om26erslytherin, the one from universe?13:15
slytherinI believe gparted is in main13:16
om26erslytherin, everything is installed already13:22
slytherinom26er: You are not getting. The build dependencies you have specified in debian/control file are not sufficient to build gparted. Compare it to the official package.13:23
om26erslytherin, yes. I downloaded the source through sudo apt-get source gparted and the control file in it has many other dependencies and I tried to install all of them and they are already installed13:24
slytherinand does the package you created have same build dependencies?13:25
slytherinI mean the one you are trying to build from scratch.13:25
=== ripps|sleep is now known as ripps
randomactionom26er: the dependencies you installed don't matter, because you are using pbuilder13:28
randomactionpbuilder examines debian/control and installs exactly what's listed there in a chroot13:29
randomactionline 297 shows a missing dependency13:29
om26erwhat is that?13:31
om26erconfigure:21700: error: XML::Parser perl module is required for intltool13:37
dupondjegeser fabrice_sp: why does sabnzbplus refuse to install when python2.6 is installed? Shouldn't it just use 2.5 and ignore install of 2.6 ?14:15
geserdupondje: because it depends on python << 2.614:15
geserpython being the package installing the default python version14:16
dupondjegeser: in the depend list there is python >= 2.514:17
geserDepends: python (<< 2.6), python (>= 2.5), [...]14:18
dupondjenot in the control file ?!14:22
geserbut in the resulting deb14:23
dupondjeyep thats true, but what causes the python << 2.6 ?14:23
geserthe value in debian/pyversions14:23
geserit tells that the package "works" only with python 2.514:24
geserso the builds sets the depends that this is ensured14:24
timhi, how can i used debuild to include the original source for a ppa upload?14:49
geserdebuild -S -sa14:57
timgeser, thanks, that is, what i was looking for15:00
dupondjegeser: so if the application doesn't work with python2.6, its unable to make a package that works for 2.5 only ?15:00
om26eris there any alternative to pbuilder?15:01
geserdupondje: do you know that it doesn't work with python2.6?15:02
geserom26er: there is also sbuild. what's wrong with pbuilder?15:02
om26ergeser, it dont build for me15:03
geserthen it's probably a bug in your package15:03
randomactionom26er: it's not pbuilder's fault15:03
om26ergeser, two different packages15:04
dupondjegeser: asked the developpers of sabnzbdplus, and they confirm it doesn't work on 2.615:04
monkeylibrejoin ubuntu-devel15:07
gesertry asking in #debian-python on OFTC, as I'm not very uptodate on python packaging. Debian will have the same problem once they make python 2.6 default15:07
dupondjegeser: http://packages.debian.org/nl/squeeze/sabnzbdplus doesn't seem to conflict with 2.6 here :s15:19
geserah, right it has a dependency on python2.515:20
geserso you need to find out which part of our delta causes this different dependencies compared to Debian and if needs to be undone15:21
dupondjethis is the diff :)15:22
dupondjeit should depend on python2.5 instead of python >= 2.5 ?15:23
ari-tczewfabrice_sp: ping bug 42886015:24
ubottuLaunchpad bug 428860 in gnome-main-menu "Please sync gnome-main-menu 0.9.13-3 (universe) from Debian unstable (main)" [Undecided,Fix released] https://launchpad.net/bugs/42886015:24
bdrungari-tczew: do you take bug 428860?15:33
ubottuLaunchpad bug 428860 in gnome-main-menu "Please sync gnome-main-menu 0.9.13-3 (universe) from Debian unstable (main)" [Undecided,Fix released] https://launchpad.net/bugs/42886015:33
monkeylibrenecesitas: Xine Plugin15:35
dupondjedh_pysupport -i -V2.515:43
dupondjedh_pysupport: Unknown python version 2.515:43
dupondjehmz :s15:43
ari-tczewbdrung, what do you mean "take bug"?15:50
bdrungari-tczew: take for sponsoring15:55
ari-tczewI'm not sponsor :>15:56
ari-tczewbdrung, you can take bug 428860 if you want16:04
ubottuLaunchpad bug 428860 in gnome-main-menu "Please sync gnome-main-menu 0.9.13-3 (universe) from Debian unstable (main)" [Undecided,Fix released] https://launchpad.net/bugs/42886016:04
=== yofel_ is now known as yofel
dupondjedh_pysupport: Unknown python version 2.5 => really no idea why :(16:06
geserI assume because pyversions doesn't list it anymore as supported16:07
aboSamoorhow can I ask for packaging sagemath for the latest version 3.4.1, while the one available is 3.0.5dfsg-4ubuntu116:10
ari-tczewaboSamoor, I think that the best way of new upstream release is request to Debian Maintainer16:14
ari-tczewaboSamoor, please look at bug 51052116:18
ubottuLaunchpad bug 510521 in sagemath "Please remove sagemath source and binary from lucid" [Medium,Confirmed] https://launchpad.net/bugs/51052116:18
ari-tczewDebian Maintainer is working on new upstream release for Debian, but if he don't do this before final release of lucid, sagemath is going to /dev/null16:19
directhexyou could help16:21
directhexafaik it's a tough packaging job16:21
ari-tczewdirecthex, who could help?16:22
directhexari-tczew, aboSamoor16:23
aboSamoordirecthex, I always wanter to help at least with smaller packages. I sent an email to motu mail list and none even replied16:24
fabrice_spari-tczew, pong16:38
fabrice_spwhat do you want on bug 428860 ?16:40
ubottuLaunchpad bug 428860 in gnome-main-menu "Please sync gnome-main-menu 0.9.13-3 (universe) from Debian unstable (main)" [Undecided,Fix released] https://launchpad.net/bugs/42886016:40
ari-tczewfabrice_sp: I want to have ACK for sync.16:55
fabrice_spok. I'll check it16:55
fabrice_spwhy are you so interested in syncing this package? (just curiousity :-D )16:58
directhexgnome-main-menu is "slab", right?17:01
ari-tczewI'm contributting to Ubuntu, just only that.17:04
fabrice_spI thought it was becasue actual version is buggy17:04
ari-tczewso do you not ACK this?17:05
fabrice_spno: I was trying ot understand your motivation17:06
fabrice_sp(I'm com,paring the debian directory, and the patches are different, so I have to check source code :-/ )17:06
fabrice_spmeaning: it will takes time17:06
ari-tczewnot only me want to get new upsteram version in Ubuntu17:07
ari-tczewJAK too17:07
ari-tczew0.9.12 is too old17:08
fabrice_splibslab is packaged indepently now, right?17:09
slytherinany autotools experts here?17:26
slytherinI need help to find root cause of this error - checking for working iconv... no17:27
ari-tczewpropably your package needs some depends in debian/control17:29
slytherinNo. This has nothing to do with packaging. I am trying fix windows build for my own application.17:31
DktrKranzgeser, ari-tczew: green light for gpsd sync (I commented on the bug to check rdeps too, as some could require some love)17:32
seglerhi, I am searching for a second advocate for my rhythmbox plugin, please. http://revu.ubuntuwire.com/p/rhythmbox-radio-browser17:54
seglerhi, I am searching for a second advocate for my rhythmbox plugin, please. http://revu.ubuntuwire.com/p/rhythmbox-radio-browser17:59
dupondjesomebody has experience on packaging python things ? :)18:10
fabrice_spdupondje, did you tried  #debian-python on OFTC ?18:22
dupondjefabrice_sp: but the thing is that its quite ubuntu specific, as only ubuntu has 2.5 as oldversion ...18:22
fabrice_spdupondje, Debian is trying to make the transition to python 2.6, and a lot of people there are Ubuntu guys18:24
randomactiondupondje: they actively encourage Ubuntu people to participate18:25
geserdupondje: there are also ubuntu people in #debian-python and it would be good to have a solution that doesn't cause us problems later, so talk to them18:25
dupondjeis python2.5 going to be removed ?18:29
dupondjeor ?18:29
slytherindupondje: yes in lucid18:35
dupondjeoh ok :) then sabnzbdplus is broken in lucid :(18:38
dupondjedamn :)18:38
fabrice_spslytherin, removed from the archive? I thought it that packages will not be built, but python2.5 willstill be there18:39
slytherinI think we have already gone through one cycle in that situation. So I believe 2.5 will be dropped completely.18:40
fabrice_sppython2.4 is still there atm :-/18:40
ubottuUbuntu bug 515223 in sabnzbdplus "sabnzbdplus is broken in lucid as it needs python2.5" [Undecided,New]18:43
devfilsorry wrong chan :P19:24
=== micahg is now known as micahg-test
=== micahg-test is now known as micahg
=== moogle is now known as nenolod
rbelemhi everybody20:18
rbelemwhat is the procedure to get the most recent version of a software in the repos?20:21
Quintasanrbelem: for general support please go to #ubuntu -> as for your question20:26
Quintasansudo apt-get update20:26
Quintasansudo apt-get upgrade20:26
rbelemQuintasan, i want to upgrade one package that is outdated in the ubuntu repos20:27
Quintasanrbelem: you want source then20:28
Quintasanrbelem: apt-get source <packagename>20:28
Quintasanrbelem: https://wiki.kubuntu.org/PackagingGuide/Basic20:28
Odd-rationaleI've been working on my first package. I'm not sure I did everything correctly. If I would like some feedback, should I post the REVU link here? Thanks!20:29
Quintasanrbelem: sorry, wrong link -> https://wiki.kubuntu.org/PackagingGuide/Complete#Updating%20an%20Ubuntu%20Package20:29
QuintasanOdd-rationale: yes20:29
QuintasanI have some time to spare so I can look at it now20:30
Odd-rationaleHere it is. http://revu.ubuntuwire.com/p/python-nltk thank you so much!20:30
rbelemQuintasan, but what is the procedure to get it reviewed and uploaded to the repos? revu is the right place for that? the package is already in the repos http://packages.ubuntu.com/search?keywords=usb-modeswitch20:30
rbelemand already in debian20:30
Quintasanrbelem: newer version is in debian?20:31
Quintasanrbelem: oh, did you contact the package maintainer in Debian?20:31
Quintasanrbelem: if he/she did release new package in Debain please file a sync20:31
rbelemQuintasan, cool20:31
kklimondaactually there is 1.1.0 in debian sid20:31
Quintasanif not you can ask if she/he wants help20:32
rbelemkklimonda, i think it is 1.0.7-1 in debian20:33
kklimondarbelem, depends on architecture - there is 1.1.0-2 for the popular ones20:35
QuintasanOdd-rationale: did you test it with pbuilder?20:35
rbelemQuintasan, it would be nice to have in the motu wiki a procedure to ask for a package upgrade if it is already in ubuntu and debian and both are outdated20:37
kklimondadebian package isn't oudated though20:37
Quintasanrbelem: well you can file a bug REQUESTING that or you can update it yourself20:37
kklimondarbelem, and you can always request a simple update20:37
rbelemkklimonda, i'm just getting 1.0.7-1 http://packages.debian.org/sid/usb-modeswitch20:39
QuintasanOdd-rationale: ./nltk/stem/porter.py is under GPL-2+20:39
QuintasanOdd-rationale: you need to mention it in copyright, overall good :)20:39
kklimondarbelem, I get 1.1.0-220:40
randomactionrbelem: http://packages.qa.debian.org/u/usb-modeswitch.html20:40
rbelemkklimonda, what do you mean by simple update?20:40
QuintasanOdd-rationale: add the missing licesne entry, reupload and I will advocate your package20:40
QuintasanOdd-rationale: You need at least two advocates to get it uploaded though20:41
rbelemrandomaction, ah! cool!20:41
kklimondarbelem, instead of merging or syncing with debian you can request a package update to the newer version.20:41
rbelemkklimonda, just file a bug in launchpad asking for an update then?20:42
rbelemthanks randomaction for the link20:43
kklimondarbelem, yes - and even better you can prepare update yourself and ask for motu to sponsor it20:43
rbelemkklimonda, cool! and upload to revu?20:44
kklimondarbelem, no - you prepare a debdiff and attach it to the bugreport20:45
kklimonda(a debdiff is just a diff of debian source package)20:46
rbelemkklimonda, cool!20:46
rbelemthanks kklimonda for the clarification :-)20:46
kklimondarbelem, you can read more about the process here: https://wiki.ubuntu.com/SponsorshipProcess20:47
Odd-rationaleQuintasan: Thanks! Do I add the other licence at the end of the copyright file?20:55
randomactionrbelem: in case of usb-modeswitch 1.1.0, it *may* get into lucid automatically: it will move into testing in 10 days at the earliest, and automatic sync from testing end on Feb 11th20:55
QuintasanOdd-rationale: I belive you can do it like20:55
Quintasan./nltk/stem/porter.py: GPL v2 or later20:56
Quintasanunder the main license20:56
randomactionrbelem: it's really close, so see https://wiki.ubuntu.com/SyncRequestProcess for how to request a manual sync20:56
Odd-rationaleQuintasan: something like this? http://paste.ubuntu.com/366421/20:57
Odd-rationaleQuintasan: i added line 15 and 3420:57
QuintasanOdd-rationale: http://paste.ubuntu.com/366422/20:59
QuintasanOdd-rationale: that should do20:59
Odd-rationaleQuintasan: ok. should I also remove the last two lines as well?21:00
QuintasanOdd-rationale: yes21:00
QuintasanOdd-rationale: and PROTIP from me: as you do new packages you should go to source dir and do - licensecheck -r .21:01
QuintasanOdd-rationale: remember the dot at the end of command21:01
QuintasanOdd-rationale: it recursively scans through the source dir and looks for licenses :)21:01
Odd-rationaleOK. cool!21:02
Odd-rationalealso, what is the difference between 'dpkg-buildpackage -S -sa' and 'debuild -S -sa' ?21:03
Quintasancan't really say, never used dpkg-buildpackage -S -sa21:04
randomactionOdd-rationale: man debuild :)21:04
Odd-rationalewhat do you use?21:04
Odd-rationalerandomaction: ok. so debuild runs dpkg-buildpackage.21:05
randomactionand a couple of other things21:05
Odd-rationalehmm. funny thing is, if i use debuild, i get "bad-ubuntu-distribution-in-changes-file lucid". but it works fine with dpkg-buildpackage...21:06
randomactionbecause it's a message from lintian21:07
randomactionwhich is run by debuild21:07
Odd-rationaleit is ok to ignore if i want to build for lucid?21:07
randomactionlintian in karmic is a bit outdated, that's why you get it21:08
Odd-rationaleQuintasan: Alright. I reuploaded. Thanks for the help!21:11
Odd-rationaleAnother question. This package is not in debian. Do I have to work to get it into debian? or is that automatically taken care of?21:12
QuintasanOdd-rationale: well, you should make changes according to debian standards (probably not many changes from your ubuntu package) and ask in debian development channel what to do nex21:13
QuintasanOdd-rationale: Debian channels are on irc.oftc.net21:14
rbelemrandomaction, cool! so i don't need to bothered about this :-)21:14
Odd-rationaleQuintasan: Is getting it into debian something that is required?21:17
QuintasanOdd-rationale: no, but if someone in debian does the same package it will probably overwrite your work so you'd be better becoming Debian/Ubuntu maintainer of that package :)21:18
randomactionOdd-rationale: https://wiki.ubuntu.com/Debian/ForUbuntuDevelopers#Getting%20new%20software%20in%20Debian21:18
Odd-rationaleok. i'll work on that. thanks for help.21:19
Odd-rationaleSorry for asking so many questions, but what does it mean to "Create one symlink to pbuilder-dist-simple for  each  distribution"?21:21
=== nenolod_ is now known as nenolod
kklimondaOdd-rationale, you can use pbuilder-dist without it21:25
Odd-rationalekklimonda: ok. but I don't even know what the above quote meant. I guess I don't need to? :)21:26
kklimondaOdd-rationale, well - you have to check if package you are trying to upload to debian actually builds on debian system. pbuilder is one of the tools you can use to do it. but you don't really have to understand this single quote :)21:30
randomactionit means create symlink "pbuilder-lucid" to "pbuilder-dist-simple", create symlink "pbuilder-karmic" to "pbuilder-dist-simple", and so on21:31
Odd-rationalewhat does creating a symlink do?21:33
randomactionyou can use these symlinks to run pbuilder21:35
Odd-rationalebut if pbuilder-lucid and pbuilder-kamic are both symlinked to pbuilder-dist-simple, then how does it know to build for lucid or karmic?21:37
randomactionI think it examines by which name you called it21:38
randomactionin fact I wonder why a collection of symlinks is not supplied with the package21:40
Odd-rationaleso i just need to `ln -s /usr/bin/pbuilder-dist-simple /usr/bin/pbuilder-karmic` ?21:41
randomactionI guess so (I don't use this feature)21:42
Odd-rationalerandomaction: oh, so how do you build for different ubuntu releases and debian?21:42
randomactionor maybe better create this symlink in /usr/local/bin21:42
randomactionpbuilder-dist lucid *.dsc; pbuilder-dist sid *.dsc21:43
Odd-rationaleis there any changes i need to make to my ~/.pbuilderrc file to do that?21:43
randomactionI believe it's designed in such a way that you don't need to tune this config file21:44
Odd-rationalerandomaction: do you mind if i see your ~/.pbuilderrc?21:45
randomactionI wouldn't recommend using mine, it's full of leftover stuff for jaunty and karmic21:46
Odd-rationaleok. i just have one line: COMPONENTS="main restricted universe multiverse"21:46
Odd-rationaleis that ok?21:46
randomactionit's ok if it works :)21:47
randomactionin fact, I don't even know whether pbuilder-dist uses or overrides .pbuilderrc21:48
Odd-rationaleso 'sudo pbuilder' builds for my current distribution (karmic) and builds in /var/cache/pbuilder. and 'pbuilder-dist karmic' builds for karmic in ~/pbuilder. is that correct?21:50
randomactionI believe that's their default behaviour21:50
Odd-rationaleto test building on debian, i should build for sid?21:53
Odd-rationalerandomaction: how do you manage the different control and changelog files for different builds?22:03
randomactiondifferent branches in git-buildpackage22:05
Odd-rationaleI'm getting this strange error with pbuilder-dist: http://paste.ubuntu.com/366473/ However, it works fine with lucid.22:56
dupondjeI would recreate my pbuilder environment :)22:58
Odd-rationaledupondje: you mean rerun pbuilder-dist <dist> create?22:59
james_wkamalmostafa: you set https://code.launchpad.net/~kamalmostafa/ubuntu/lucid/inteltool/fix-508633-ftbfs/+merge/17535 to work in progress, does that mean I shouldn't review it yet?23:11
kamalmostafajames_w: looking23:12
james_wah, I see you did it with a few23:12
james_whi btw23:12
kamalmostafajames_w: okay I did it because of fabrice_sp's comment: https://bugs.launchpad.net/ubuntu/+source/inteltool/+bug/508633/comments/223:13
ubottuUbuntu bug 508633 in inteltool "inteltool FTBFS on !x86 archs" [Undecided,Won't fix]23:13
james_whow did I miss that?23:13
kamalmostafajames_w: :-)  it still shows as FTBFS for the non x86 platforms I assume23:14
james_wonly a problem of filling up the ftbfs list really23:14
james_wif the problem is filed in Debian then I'm not sure we should change it in Ubuntu directly23:15
kamalmostafajames_w: well, you know me... always eager to clear some red boxes! ;-)23:15
kamalmostafajames_w: it has been filed in Debian for about 7 weeks (not long really) but that being said I don't know how actively the pkg is maintained upstream.  Whether you want to push my change just to clear the ftbfs's is up to you.23:17
james_wI'm not inclined to, though I haven't looked at the ftbfs list recently :-)23:18
kamalmostafaoh, and yes, for other merge proposals that I've since "reverted" to work-in-progress -- they are likely similar situations -- merges that have been "put on hold" by MOTU's to see if Debian will take action first.  In general, I don't know how long we're inclined to wait -- but I'm glad to at least have those issues bug-reported here in Ubuntu.  Too bad we can't mark them as "ignore this" in the FTBFS list somehow.23:20

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