/srv/irclogs.ubuntu.com/2012/12/19/#ubuntu-unity.txt

smspillazbregma: you around ?00:23
smspillazbregma: I'm not sure what your view is on encoding Interface/Impl names, if you could clarify that would be great00:23
smspillazTrevinho: ^ would be good to get your thoughts on that00:30
smspillazI know that the style guide document says "use -Interface" but I also know that lots of people hate -Interface00:30
Trevinhosmspillaz: I'm not sure I got what you mean...00:31
smspillazTrevinho: do you prefer interface classes to be named FooInterface or Foo00:32
smspillazand is that the general preference00:33
TrevinhoAh... I'd prefer FooInterface... or AbstractInterface if that's the case00:33
Trevinhosorry00:33
TrevinhoAstractFoo00:33
smspillazTrevinho: AbstractFoo ?00:33
smspillazokay :)00:33
Trevinhoyeah, sorry :P00:34
bregmaI prefer Foo as the interface and use the bridge pattern00:34
smspillazno problem, was just looking for what people preferred00:34
smspillazbregma: okay, so whats the verdict :)00:34
smspillazbregma: Foo/FooImpl or AbstractFoo/Foo ?00:34
smspillaz(one of the things I don't like about code review is that reviewers almost always disagree on style :))00:35
bregmaI don't like having structure creep into names in APIs, so I dislike Abstract, and Impl implies a private implementation behind the interface so it should never leak out00:36
bregmaso I prefer Foo/Foo::Impl00:36
smspillazbregma: Trevinho: what's the verdict then, and can we get this written down somewhere ?00:38
bregmayes, I'd like to get it written down00:38
Trevinhosmspillaz: we have the style docs... they probably should be updated with these things too00:39
smspillazbregma: btw, when you say Foo::Impl, do you mean a subclass? eg, Foo::Impl ?00:39
smspillazerm, class Foo::Impl00:39
bregmayes, a nested class00:39
bregmausing the pimpl idom00:39
smspillazbregma: well, it wouldn't quite be nested00:39
smspillazerm , a pimpl00:40
smspillazbregma: but if you mean something like having the interface class with a static factory method which returns Foo::Impl through its interface then I guess that's okay00:40
bregmais the goal not to separate interface from implementation, to allow the implementations and interfaces to vary independently (ie. a Nux implementation, a mock interface)?00:41
smspillazbregma: yes, Extract Interface00:41
bregmaI think the best approach is to use the pimpl idiom (the bridge pattern) and have the interface class constructor take a factory function that defaults to creating the usual Nux-based implementation00:45
bregmaa factory function that creates a mock implemntation can be used for the tests00:45
smspillazbregma: that's not a pattern I've seen before, but its somewhat workable (although I'm a bit skeptical of interfaces having constructors)00:46
bregmaI would really like to see as much nux as possible hidden behind facades00:47
smspillazbregma: actually that could get a little awkward00:47
smspillazif you wanted to create a MockFoo on the stack, that inherited from foo, you'd have to provide a "constructor" which returns a reference to the same thing in order to satisfy the interface constructor00:48
smspillazerm, a "factory function"00:48
smspillazbregma: do you want me to provide a sample of what I'm thinking of so I know we're both on the same page ?00:49
bregmait could be a little awkward if it goes too far, but right now it makes testing and maintenance harder because it's almost impossible to reason about functionality when a class has a 10-level inheritance heirarchy, ober 100 member functions, and 50 public member variables00:49
smspillazbregma: I know :)00:50
smspillazbregma: what I'm suggesting is that your method of having the interface class take a factory function is the awkward part00:50
smspillaznot the interface itself00:50
bregmaI disagree, I've used that design before without problems00:51
bregmajust not with nux and properties and introspection00:51
smspillazbregma: hmm, okay. I'll just hack something together to see if we're both on the same page here00:51
bregmaI've been playing wit hthe Switcher classes for the last few days for #824965, before I looked at your MP00:52
bschaefersmspillaz, hey, when you get a chance, can you take a look at this: https://code.launchpad.net/~brandontschaefer/compiz/lp.1002246-check-valid-strut-windows/+merge/14056900:52
smspillazbschaefer: sure00:52
bregmaso I'm pretty certain we have the same goals00:53
smspillazbregma: ah, hence the review :)00:53
bschaefersmspillaz, thanks, im not sure how I feel about it but its a tough problem to fix00:53
smspillazbschaefer: actually, what was the problem with using ~PlaceWindow ?00:53
bschaefersmspillaz, the ~PlaceWindow gets called after the DestoryNotify event00:53
smspillazbschaefer: yep, its supposed to00:54
bschaeferwhich the problem is the DestroyNotfiy is coming into compiz to later00:54
bschaeferto late*00:54
smspillazdoes it come after the countdown timer ?00:54
bregmasmspillaz, the review was actually because I'm trying to get through the backlog of MPs, it's just a coincidence00:54
smspillazbregma: :)00:54
smspillazbregma: great to see you're doing that00:54
bschaefersmspillaz, the count down is super late (The Fallback one)00:54
bschaefersmspillaz, which happens after everything00:55
smspillazbschaefer: have you tried bumping up the timer ?00:55
smspillazoh00:55
bschaeferhmm no I have not00:55
smspillazwell in that case it shouldn't be a problem00:55
smspillazas long as we only ever hit the doHandleScreenSizeChangeFallback code after we get the DestroyNotify for the unity windows00:55
smspillazI mean what should happen is this:00:55
bschaeferyeah that is what happens, the fall back is way after the DestroyNotify00:56
bschaeferthe problem is we collect these windows, then we destroy the window, leaving the destroyed windows in the list00:56
bschaeferbut the destoryed windows are still valid to compiz, but not the xserver00:56
bschaeferuntil the DestroyNotify comes through00:57
smspillazConfigureNotify on root window -> Place::handleScreenSizeChange -> strut windows collected -> Unity::handleScreenSizeChange -> unity struts destroyed -> Nondestroyed struts send a PropertyNotify (remove them from list) -> Destroyed struts send a DestroyNotify (-> ~PlaceWindow -> remove from list) -> mStrutWindows should now be zero, call doHandleScreenSizeChange00:57
smspillazbschaefer: right, what I'm trying to say is that you can remove the windows from mStrutWindows and call if (mStrutWindows.empty()) doHandlescreenSizeChange () from within ~PlaceWindow00:58
smspillazPlaceWindow has a private member variable "window", and you just call mStrutWindows.remove (window)00:58
bschaeferi tried that and .... hmm00:59
bschaefernow im wondering why it didn't work00:59
smspillazThe only reason I can see it not working is if the non-destroyed strut windows don't update their struts00:59
smspillazin which case we just do the fallback anyways01:00
bschaeferthats what happens, it is destroyed, but compiz holds the struts still, so to compiz the struts are still valid01:00
smspillazhowever if the DestroyNotify comes before the fallback, then there's really no problem01:00
bschaeferuntil the the destroy01:00
smspillazbschaefer: ah01:00
bschaeferI even tried updateStruts()01:00
bschaeferbut that didn't seem to work either which was odd01:00
smspillazright it will just error out01:01
bschaeferyu[01:01
smspillaz.. I think01:01
bschaeferwell01:01
smspillazactually01:01
bschaeferit should set it to false if hasNew is false01:01
* bschaefer has to double check01:01
bschaeferits a huge function01:01
smspillazbschaefer: src/window.cpp: after the second XGetWindowProperty01:02
smspillazadd an else block after that first if () check01:02
smspillazthat sets hasNew to true01:02
bschaefersmspillaz, well I would still have to update the list...but instead of doing XGetGeometry01:03
smspillazif both properties fail to be read then we should assume that the window has no struts01:03
bschaeferdo update struts on each one01:03
smspillazbschaefer: okay, so two things01:03
bschaefersmspillaz, is it setting it to false?01:03
smspillazbschaefer: yes01:03
bschaefero there it is01:03
smspillazbschaefer: so first you need to update the list on ~PlaceWindow01:03
bschaeferalright01:03
smspillazand second you need to call w->updateStruts () before updating the list01:03
smspillazwith that small fix applied01:03
bschaefersmspillaz, the small fix being the w->updateStruts call?01:04
smspillazthe small fix being the hasNew = false01:04
smspillazafter01:04
* bschaefer still needs to change the indention for reading compiz files01:04
smspillazhttp://paste.ubuntu.com/1448984/01:05
bschaeferit should be getting set to false on line 97401:05
bschaeferoo right01:06
smspillazbschaefer: use qtcreator and go into tool -> editor settings -> c++, change "always use spaces" to off, change "indent width" to 4 and "tab width" to 801:06
smspillazquickest way to get compiz style01:06
bschaeferI use vim, and I have the compiz stuff commented out01:06
bschaeferi've just been to lazy to go edit that haha01:06
bschaefersmspillaz, hmm wont it still be false if this fails though? if (result == Success && data)01:07
bschaeferoverall it says if (!hasNew)01:08
bschaeferso its false coming into this function01:08
bschaeferor cond sorry01:08
smspillazyes, it is01:08
smspillazso the way that function works01:08
smspillazis that it checks _NET_WM_STRUT_PARTIAL01:08
smspillazand then if that fails it goes to _NET_WM_STRUT01:08
smspillazif either one succeeds, it sets the new strut values01:08
smspillazboth calls to XGetWindowProperty are going to fail because the window does not exist01:09
smspillazso, in that case, we should reset its struts back to zero01:09
smspillazhence the hasNew = true01:09
bschaeferyes, so result should not == Succes though01:09
smspillazcorrect01:09
bschaeferbut isn't it already false?01:09
smspillazresult ?01:09
smspillazor hasNew ?01:09
bschaeferresult = XGetWindowProperty (screen->dpy (), priv->id,01:10
bschaeferwill get result != false01:10
bschaeferi mean01:10
bschaeferresult will not equal success, but hasNew at this point is already fase01:10
bschaeferfalse01:10
smspillazyes01:10
bschaeferf (!hasNew)01:10
smspillazand you want to se it to true01:10
bschaeferooooo01:10
smspillazsorry, I typoed it in my pastebin01:10
bschaeferthat is what I got confused about :)01:10
smspillazhttp://paste.ubuntu.com/1448991/01:11
bschaefersmspillaz, hmm but don't we want line 1145 to be ran?01:12
bschaefer      priv->struts = NULL;01:12
bschaefersmspillaz, ill play around with it, thanks!01:13
smspillazhmm01:14
smspillazokay, actually I'm wrong01:14
smspillazbschaefer: check that in its current implementation, priv->struts is indeed set to NULL when you call updateStruts01:15
bschaeferit seems we need this to be true: hasOld != hasNew ||01:15
smspillazthat should be the only thing that matters01:16
bschaefersmspillaz, alright, ill check that because I tried this twice and it seemed to work when I was doing XGetProperty, but when I removed that it seemed to fail to set it to false01:16
* bschaefer might have been forgetting to flush X01:16
smspillazthen on ~PlaceWindow you can do (window->updateStruts (); mStrutWindows.remove(window); if (mStrutWindow.empty ()) doHandleScreenSizeChange ());01:16
smspillazbschaefer: XGetWindowProperty is a sychronous operation there's no need01:16
smspillazgotta run bbl01:17
bschaefersmspillaz, alright, thanks a lot!01:17
bschaefer(i meant that XGetWindowProperty() was causing things to be flush, ie. why updateStruts() worked when that was there)01:17
* bschaefer is most likely wrong01:17
smspillazXGetWindowProperty calls _XReply which is an implicit flush-and-sync01:18
bschaefero cool, good to know01:19
smspillazbregma: yeah, no so sure about the default constructor. Here is what I think you're talking about01:22
smspillazbregma: http://paste.ubuntu.com/1449009/01:22
smspillazFoo.h has a depedency on FooImplFactory.h01:23
smspillaznot really sure you want that01:23
smspillazbbl01:23
smspillazbregma: if I'm wrong, can you paste an example of what you're talking about ?01:25
bschaeferwell awesome, that worked....I must have been doing something horribly wrong haha01:36
bregmasmspillaz, I'm in and out, I'll try to post what I mean in a bit02:08
smspillazbschaefer: :)02:42
smspillazbregma: okay, no problem. I'll split up the proposals now while I'm waiting02:42
bregmasmspillaz, http://paste.ubuntu.com/1449232/ -- an example taken from another project with some global substitution of class names for clarity04:20
bregmanot in Unity code style04:20
smspillazbregma: thanks, I'll take a look04:21
bregmaI have no idea if it's clear or not, but it compiles and runs04:22
smspillazbregma: ah right04:22
smspillazbregma: see my issue there is that you've got a dependency on Controller::Impl within Controller04:22
smspillazthis looks more like the pimpl idiom than it does the bridge pattern04:23
bregmathe pimpl idiom _is_ the bridge pattern04:24
smspillazbregma: well, in this implementation it is, yes04:25
smspillazbregma: it is clever though, no virtual functions in the interface04:26
bregmavirtual functions in the interface cause Fragile Base Class syndrome04:26
smspillazagreed04:26
smspillazbregma: I wanted to do something like this for compiz in fact :)04:26
smspillazbregma: that being said, the controller interface is internal. I'm not too worried about ABI stability there04:27
bregmatrue, force of habit doing years of library API development on my part04:27
smspillazbregma: its a good habit04:28
smspillazbregma: anyways. I can do it like this if you want04:28
smspillazit would be quite different to most of the code in unity though04:28
bregmabut simple, solid interfaces make testing easier and reasoning about the code easier04:28
bregmaand we can modify the other faces gradually as we do other things04:28
smspillazI agree04:29
smspillaztesting will be a bit more awkward though04:29
smspillazyou'll have something like this:04:29
smspillazbregma: actually hmm04:29
smspillazbregma: see the thing with testing and google mock generally is that we need to have access to the underlying MockFoo in order to set expectations on it04:30
bregmayes, which means the Impl will have to be a mock object04:30
smspillazright, but I need to have access to it04:30
smspillazwhich means either adding a getter to Controller to get a MockImpl (not gonna happen) or having this awkward "CreateImplFunction" which just returns a reference to the existing mock object04:31
smspillazso you'd have something like (just thinking aloud)04:31
smspillazMockFoo::Ptr p (new MockFoo);04:31
smspillazController::CreateImplFunction f ([&]{ return p; })04:32
smspillazController c (x, y, f);04:32
smspillazwould that make sense ?04:32
bregmawhy not just Controller c(x, y, [](){return Ptr(new MockImpl); });  ?04:33
bregmaoh, wait04:33
smspillazbregma: because I need to have access to the actual MockImpl04:33
bregmayeah, I just realized04:33
smspillazunless you want to make an interface for MockImpl04:33
smspillaz;-)04:33
smspillazAn interface for your interface!04:33
smspillazbregma: btw, some people don't like NVI, prepare for some disagreement on reviews :)04:34
bregmano no, the Ptr type is a unique_ptr, you can use a unique_ptr on a stack-based object04:34
smspillazor it might just be the NV/P/I strain of NVI04:34
bregmaI'm not so worried about reviews, I have a big club I can weild if I have to04:35
smspillazbregma: you can use unique_ptr on the stack ?04:35
smspillazwouldn't that mean that CreateImplFunction would have to return a const unique_ptr <Controller> & >04:35
smspillaz?04:35
bregmayes, the defaulted second argument is the deleter object, which can just do nothing04:35
smspillaz(since unique_ptr is noncopyable iirc)04:36
smspillazor rather, it sets the old one to NULL04:36
smspillazwhich isn't really what you want04:36
smspillazimpl would have to be shared04:36
bregmait's better if it's unique and a special deleter is used for mock impls04:37
bregma"there can be only one"04:37
smspillazbregma: yeah, just the issue is this:04:37
smspillazunique_ptr <MockImpl> mock (new MockImpl)04:37
smspillazcontroller (x, y, [&](){ return mock; } -> Impl::Ptr &)04:38
smspillaznow mock is NULL04:38
smspillaz(I'm sure that lambda syntax was not correct, just ignore it :))04:38
smspillazbregma: so can I make it shared ?04:40
bregmaunique_ptr only runs the deleter on the underlying pointer, it does not null it out, that's why you need to supply a null deleter04:41
bregmaI'm trying to find an example04:41
bregmathis one has an example: http://stackoverflow.com/questions/8274451/well-how-does-the-custom-deleter-of-stdunique-ptr-work04:43
smspillazbregma: ah, thanks. TIL04:43
bregmaI expect to see some hairy stuff from people like Alexandrescu when more people start experimenting with std::unique_ptr04:44
smspillazbregma: sadly there is no "one true style" for C++04:45
smspillazits all "my opinion is that"04:45
smspillazbregma: BTW, do you mind if I rename SwitcherView to View?04:46
smspillazI'll call the default implementation NuxView04:46
smspillazthey both sit in unity::switcher04:46
bregmait would be more consistent with switcher::controller04:46
smspillaz:)04:47
smspillazbregma: BTW, I hope I don't come across as argumentative. I was just trying to work through the thought process. Thanks for the advice :)04:47
bregmano problem, I've been ruminating on this for a while so it's good to hash it out04:48
smspillaz:)04:48
bregmait's nice to do something non-administrative, too...  too much management, not enough programming these days04:49
smspillazwhy is that a common theme?04:49
smspillazbregma: you know its awesome, since I've left, I can actually be productive now04:49
smspillazthe great irony of employment04:50
bregmayeah, like the irony or working from home:  less time commuting but much much more time working04:51
bregmain fact, it's nearly midnight here and I have to get up in a few hours to start my day04:51
smspillazbregma: I always thought this would happen: http://theoatmeal.com/comics/working_home04:51
smspillazbregma: heh, get some sleep maybe. I figured it was late. Nice talking :)04:52
bregmaheh, comic nailed it04:53
smspillazI love the oatmeal. Frank and to the point04:54
=== bregma is now known as bregma|away
Al562Hello, does anyone know how to reset keyboard shortcuts back to default??05:16
smspillazhmm07:39
smspillazbschaefer: you around ?07:39
bschaefersmspillaz, ish, whats up?07:40
smspillazbschaefer: can you check if the standalone switcher crashes on startup for you?07:40
bschaefersmspillaz, sure07:40
smspillazI'm doing some refactoring and its crashhing in an odd place that I haven't touched but I don't want to recompile all of unity07:40
bschaeferhmm nope doesn't seem to seg fault for me07:41
smspillazokay, thanks, I'll keep looking into this07:41
bschaeferthough its a bit odd...good luck!07:41
bschaeferI should head off to bed...07:41
smspillazah, FFS07:49
smspillazyou have to install it to run the examples07:49
gatisAccording to X11 specification XGrabKeyboard() should grab all keyboard events exclusively to my client, but its not the case for Super_L (windows key), Alt, which trigger Unity shortcuts10:43
gatisany ideas why Unity doesn't respect GrabKeyboard ?10:43
=== _salem is now known as salem_
=== bregma|away is now known as bregma
smspillazgatis: I think GrabKeyboard does not override passive grabs12:23
gatissmspillaz: i found this https://bugs.launchpad.net/unity-2d/+bug/96441412:23
ubot5Launchpad bug 950160 in OEM Priority Project precise "duplicate for #964414 Unity blocks other programs from binding globally to Super+* (* = any key)" [Critical,In progress]12:24
gatisi think that the culprit12:24
smspillazyeah if I remember correctly that was a lot more complicated than it seemed12:24
smspillazgatis: are you running precise or quantal ?12:27
sil2100I thought that thing got finally resolved?12:27
sil2100This bug I mean12:28
smspillaz"resolved"12:28
smspillazif I remember correclty we added a workaround to not use the tap detection code on the super key12:28
gatissmspillaz: precise12:29
smspillazgatis: yeah I dunno if we ever backported it12:29
gatisah, then i will need to install quantal one day to verify12:30
sil2100hm, I think we had packages prepared for precise12:35
sil2100But indeed those never got released I think12:36
sil2100Since we were working on packaging the workaround on UDS12:36
Mirvthe fix is only in raring because there is a side-effect being investigated by brandon (dash pops up when display is switched)12:51
Mirvif that can be tackled and also that fix backported, then we could finally move forward to releasing the fixes in 12.10 & 12.04. but it seems complicated.12:52
Mirvbtw, I now summarized the Compiz unredirection status at http://losca.blogspot.fi/2012/12/compiz-fullscreen-unredirection-update.html12:53
smspillazMirv: what graphics hardware are you running ?12:56
Mirvsmspillaz: depends on machine... sandybridge quantal, radeon precise machines for example13:01
Mirvsmspillaz: if you refer to the display switch / dash pop up, that happens with the hardware key of at least dell xps 13 which is wired to output super+p13:02
smspillazMirv: I was wondering if you had any machines with nvidia cards13:25
smspillazneed testers for the buffer_age stuff13:25
smspillazthough I guess it just generally needs testing13:25
Mirvsmspillaz: sil2100 now has one, running precise though13:29
* sil2100 has one13:29
smspillazah13:29
sil2100It's an old machine though13:29
sil2100And it has precise only13:30
smspillazsil2100: <8300GT ?13:30
sil2100smspillaz: yes, 7400Go if I remember correctly13:33
smspillazsil2100: yeah, they've moved it to -legacy now13:33
sil2100Poor old laptop... :(13:36
smspillazsil2100: I couldn't get the newer version of osx my my desktop machine too (2006 iMac)13:39
popeysmspillaz, i have one running raring13:54
popeysmspillaz, GTX 460 if that's any use13:55
smspillazpopey: go test ppa:smspillaz/compiz-experimental and file bugs/oddities/whatever with the compiz-experimental-ppa :)13:59
smspillazperformance improvements inbound13:59
smspillaz(with the compiz-experimental-ppa tag)13:59
smspillazI accidentally a word13:59
popeysmspillaz, ok14:09
smspillazpopey: :)14:12
popeysmspillaz, anything in particular I should be looking for?14:12
smspillazflickery things14:12
popeyroger14:13
smspillazits basically a combination of recycling backbuffers (drawing less stuff) partial updates in nux (drawing less stuff)14:13
smspillazany time you get (drawing less stuff) wrong it usually means flickering, bleeding or trails14:14
smspillazpopey: the ones I know about are a crash on dragging launcher icons, and flickering when using the workspace switcher14:14
popeysmspillaz, package in your ppa wants to remove loads of stuff14:24
popeysmspillaz, paste.ubuntu.com/145007914:25
smspillazpopey: great, I guess I'll have to refresh the version numbers14:31
smspillazI hate debian packages14:31
popey:)14:31
smspillazlet me go on the record as saying: debian is the worst distribution ever.14:31
* smspillaz quickly vacates the room14:31
popey /kickban smspillaz14:32
smspillazpopey: hmm, I don't really care about the fact that its removing unity-2d ... 1) do you have the staging ppa enabled? 2) could you grab me the output of apt-cache policy unity ?14:33
smspillazpopey: okay, so debian is the worst distribution I've ever used BUT14:33
popeyi have the daily desktop ppa enabled14:33
popeyi can remove it14:33
popeyrevert to stock14:33
smspillazI've only ever used debian based distros so14:33
smspillazXD14:33
smspillazpopey: this one at least depends on ppa:unity-team/staging14:33
popeyoh, ick14:34
popeymeh, my system is now in a mess14:34
smspillazits not in a mess until it doesn't boot14:35
smspillazeven then its not /really/ in a mess until your kernel image is corrupt and you don't have any other kernel images14:35
smspillazthen you're screwed14:35
* smspillaz has recovered a system from kernel and init=/bin/bash before, not fun14:36
popeyyeah, need to fiddle a bit14:38
Trevinhomterry: ready for your review: https://code.launchpad.net/~3v1n0/bamf/soname-up/+merge/140695 ;)15:13
mterrytrevinho, thanks!15:14
Trevinhomterry: I've updated it to 4, since it was never done before... And I'd like to keep it synced with major version... But if that's something too big, I'll move to just 1.0.0...15:41
mterrysynced with major version?15:41
mterryoh is the version 4.x.x for bamf in general?15:42
Trevinhomterry: yes15:42
mterryTrevinho, well I guess the next question is when do you bump major versions?  :)  Since it doesn't seem to have been based on SONAMEs before15:42
mterryTrevinho, so you might get in this same situation again of mismatched version/SONAME15:42
mterryTrevinho, but regardless, there's no problem with bumping up to 4, I was just curious, and wanted to forstall confusion about the 3 in the libbamf3-0 name15:43
mterryforestall even15:43
Trevinhomterry: yes, that's a possibility I tought... I don't know which is the best approach... for unity (and libunitycore) for example.. we used to bump the soname at every new major version... And that's something we could do here too...15:43
bregmathat's just broken15:44
Trevinhomterry: that name was added because of the gtk3/gtk2 thing (that was wrong, since libbamf never depended on gtk)15:44
Trevinhomterry: I wanted to change that too... but I asked to didier and he preferred to stay with it15:44
mterryTrevinho, yeah, now that the 3 is there...  I'd just as soon keep it too15:45
mterryTrevinho, and bumping SONAME when we don't need to is bad.  I'd just say keep it de-coupled from major version number to resist the urge to bump it unnecessarily15:45
mterryTrevinho, speaking of unnecessary...  why did we remove the API again?  :)15:45
mterryTrevinho, one could always just make the API a no-op...15:46
Trevinhomterry: these apis were totally unneeded...15:46
mterryTrevinho, sure...  But everytime a SONAME is bumped, a kitten dies is all I'm saying  :)15:47
Trevinhomterry: mh... I wanted to cleanup things that we have in and that were not needed anymore15:47
Trevinhomterry: mh, I know... But we have to at some time15:48
mterryTrevinho, I'm just being a punk.  Anyway.  I'd say go with 1 for SONAME and update the package names15:48
Trevinhook15:48
mterryTrevinho, are there any other API cleanups you want to squeeze in while we're bumping anyway?15:48
Trevinhomterry: mhmh... probably few additions, but not removal... Even if there's an ABI change in progress by andyrock (not sure because he probably could just use the padding space we have in structs)15:50
Trevinhomterry: question: why the gir packaging is currently disabled for bamf?15:52
andyrockTrevinho, mterry https://code.launchpad.net/~andyrock/bamf/bamf-window-tab-mockable/+merge/14070415:52
Trevinhoandyrock: since you're there please add some padding to the tab class (window one should already have it)15:53
mterryTrevinho, not sure15:54
Trevinhomterry: I've pushed the updates to the branch...16:01
Trevinhomterry: it would be nice to get the gir packaged as well btw16:01
mterryTrevinho, yeah...  Do we not have any python consumers now or are there static bindings for that?16:02
Trevinhomterry: I think that who is using it with pyhton just uses the raw DBus API (but loosing some features)16:03
mterryTrevinho, your last update added an empty chunk to the changelog16:03
Trevinhomterry: autopilot does it for example (but also because it was not using gir at all due to some old dependency)16:03
mterryTrevinho, also you correctly noted that the libglib2.0-dev needed to be updated, but you did 2.30 instead of 2.32 like the Build-Depend.  Should probably be same16:07
=== gatox is now known as gatox_lunch
Trevinhomterry: actually the library needs a lower version than bamfdaemon16:07
Trevinhomterry: that's why I didn't put the same values16:07
mterryTrevinho, ah OK16:07
mterryTrevinho, so has bamf never needed libwnck or what?16:08
Trevinhomterry: the daemon yes, the library never16:08
Trevinhomterry: the library only depends on dbus and glib16:08
mterryTrevinho, and does the daemon no longer need it?16:08
Trevinhomterry: so... it depends on it since it depends on the daemon, but not strictly16:08
Trevinhomterry: so you can link on libbamf even without having libwnck-dev installed16:09
mterryOh daemon still needs it, sure16:10
Trevinhomterry: oh I forgot to move some debian files... (doing it now)16:10
Trevinhomterry: do we really need Depends: ${shlibs:Depends} on libbamf3-dev?16:15
mterryTrevinho, no I shouldn't think so16:15
Trevinhomterry: everything pushed should be ok now16:21
mterryTrevinho, it's not a big deal, but I do like the the trailing commas on the last item in a dep list16:22
mterryTrevinho, keeps future diffs shorter and easier to read when we add one at the end16:22
Trevinhomterry: i've removed some16:22
TrevinhoAh, ok16:22
Trevinhosorry... I read a "I don't"... Putting it back16:22
=== gatox_lunch is now known as gatox
Trevinhomterry: I've fixed the gir building, should I move it in another branch?17:42
mterryTrevinho, yeah please17:52
Trevinhomterry: it's already up: https://code.launchpad.net/~3v1n0/bamf/gir-package/+merge/140742 ;)17:52
mterrywill get to the other branch too but got distracted17:52
Trevinhomterry: done18:36
=== salem_ is now known as _salem
Trevinhomterry: I've update the gir branch too22:01
mterrytrevinho, awesome22:01
Trevinhouff, few merge issue.. Fixing them now22:02
mterrytrevinho, ${shlibs:Depends} could be dropped yeah.  I thought it was used for gir's but guess not22:03
Trevinhomterry: eh, no it uses ${gir:Depends}-.. clearing it22:03
mterrytrevinho, as for gir1.2-bamf-3-1, I'm reasonably sure that's not right22:03
mterrytrevinho, e.g. libsecret doesn't use SONAME22:03
mterrytrevinho, but...22:03
mterrytrevinho, gtk uses 3.0...  I wonder if that's 3.SONAME?22:04
Trevinhomterry: I don't know... it could be, that's why I'm asking... I don't know if there are clear policies on these tasks22:05
Trevinhomterry: libdbusmenu is using libdbusmenu.so.4 and gir gir1.2-dbusmenu-glib-0.422:07
mterrytrevinho, this part I'm less clear on.  Let me see if there's docs anywhere22:08
Trevinhomterry: other things are confusing as well... for example librest-0.7-0 has soname 0 and gir gir1.2-rest-0.722:11
mterrytrevinho, yeah.  Many don't have the SONAME as part of it.  But I feel like they should...22:12
Trevinhomterry: yeah i think too, also if they depends on a lib that has soname on the name itself...22:12
mterrytrevinho, they seem all over the place.  appindicator does gir1.2-appindicator3-0.1 (which is weird because it has SONAME 1 and I would expect gir1.2-appindicator3-1)22:26
mterrytrevinho, (though, to be fair, I think I named that one back in the day)22:27
mterryTrevinho, I'd vote for gir1.2-bamf3-1  ...  for matching the other names (though really the other names should bamf-3-1 instead of bamf3-1)22:30
Trevinhomterry: mh... not having clear policies on these things creates a little of confusion..22:30
mterryTrevinho, I searched, but didn't see one22:30
Trevinhomterry: yeah, me too22:30
mterryTrevinho, couldn't even find where the original gir1.0 vs gir1.2 issue was settled22:30
mterryI think that was just a post in debian's bug tracker22:30
Trevinhomterry: so also the typelib name should be Bamf3-1.typelib instead of Bamf-3.typelib ?22:32
mterryTrevinho, yeah, it should track the package name.22:33
mterryTrevinho, but honestly I'd like to ask around first and see if anyone knows the real policy for these things before we go ahead22:34
mterryTrevinho, most people that know are on holiday.  Maybe wait until the next year22:34
Trevinhomterry: ok... So I'll keep it waiting22:34
Trevinhomterry: please let me know when you have any info..22:37
fgintherbregma, ping23:36
bregmafginther, pong23:40
fgintherbregma, do you happen to know anything about Jussi's precompiled header change for unity failing to build in the staging ppa?23:41
fgintherhttps://launchpadlibrarian.net/126181515/buildlog_ubuntu-raring-amd64.unity_6.12.0daily12.12.05bzr3003pkg0raring0_FAILEDTOBUILD.txt.gz23:41
fgintherbregma, I was unable to find him online23:42
bregmaonly that, according to Jussi, "it broke the build because in Jenkins something is stripping compiler flags in unity-shared"23:42
bregmathen he said he'dlook into it tomorrow23:42
bregmahe's at, what UTC-2?23:43
fgintherok, didn't know if he expanded on that to you. Thanks for checking.23:43
fgintheryeah, he should be online before too long23:43
bregmamy first guess is that Jenkins is pulling in a newew cmake and it does something different with the flags23:43
bregmabut he's the expert on cmake, so I trust he'll figure it out23:44
fgintherOk, I'll just send him an message with my brain dump, hopefully it will get him the info he needs.23:44
fgintherbregma, thanks for the help23:44
bregmapleasure23:44

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