/srv/irclogs.ubuntu.com/2016/09/23/#ubuntu-mir.txt

=== hikiko is now known as hikiko|off
dufluabi-check says we removed a function from MIR_CLIENT_DETAIL_9 ... that's OK right?07:50
duflualan_g ^07:53
alan_gduflu: yes(ish)07:54
RAOFI would also say yes.07:55
dufluIt's an ABI but not as public07:55
alan_gIt won't break clients, the things it would break are distributed at the same time07:55
dufluIndeed07:55
dufluJust looks bad for our tooling as even after I fixed some minor problems 'make abi-check' fails due to it07:56
dufluSo you can't tell if other failures lurk after it07:56
* alan_g would like to reorg the code - but that would break ABIs07:56
* RAOF is happy to break any ABI that isn't the client ABI.07:58
alan_gMirAL brings a new hope of a stable server-side ABI (but that includes getting mircommon stable)07:59
dufluI would like to say it's too late in the week to think about that but I am presently looking at it07:59
RAOFRe-exporting symbols is a thing, right?07:59
RAOFHm.08:00
alan_gHmm that is a thought08:00
dufluRAOF: Definitely, in theory. Just need to know how with our tools08:00
RAOFActually, *why* can't we just include mircommon statically into mirclient?08:01
dufluBecause it's a waste of space. Also the break already happened anyway08:01
RAOFI mean, we could *remove* libmircommon as a thing.08:01
alan_gBecause it is used by platform modules, the mirserver and mircommon08:01
RAOFIt's a trivial waste of space, and it simplifies our lives.08:01
alan_gODR rule08:02
dufluRAOF: That solves the symbol version problems sure. But not header changes... ODR08:02
RAOFalan_g: The ODR rule doesn't apply here, though?08:02
alan_gWhy not?08:02
dufluCommon sense by some other name then. Database normalization (?!08:02
duflu)08:02
RAOFBecause there are no C++ objects in the interface between mirclient and mirserver/mirplatforms?08:03
duflulibmirprotobuf is C++ but a different lib08:04
RAOFI mean, it's not an ODR violation if glib internally has a class called mir::Dispatchable but it's not exported in the symbol table and never appears in the interfaces.08:04
dufluDon't worry about it. We all know a fix is possible at the binary level. Just need to work out the high level syntax08:04
RAOF(If that *is* an ODR violation then that's another area where C++ is insane)08:04
RAOF(This might require getting rid of mirclientdetail, which exists, from memory, purely for the benefit of acceptance tests?)08:05
alan_gI think also for the debug extension rubbish08:05
RAOFYeah, I'm happy to fold that in.08:06
RAOFWe'll have an *actual* extension mechanism *someday*.08:06
alan_gOne day we'll work out exactly what we need in what libraries and declare version 108:06
dufluI actually wanted to look at a version "25" but that idea fell flat when I realized mirserver is already higher :(08:07
dufluHow did we get here?08:07
alan_ggood intentions08:07
alan_gGood session for the sprint?08:08
duflualan_g: Sounds like a session we've had (multiple times?) before08:10
dufluNot sure I want to go through that again08:10
RAOFThis seems like a different session?08:10
RAOF“How can we make it so that mirclient (a) exports no C++ symbols and (b) is standalone”?08:11
RAOFI don't think we've asked that before.08:11
dufluI thought we kind of had tests for it?08:11
dufluOr similar...08:11
alan_gAnd (c) how do we make a stable server ABI?08:11
dufluMaking sure it doesn't re-export mircommon08:11
alan_gThe stuff MirAL actually uses from mircommon actually should be stable08:12
dufluYou can use anyone else's API/ABIs in your headers if they are version < 3. Otherwise (if they are ours) then maybe not08:12
alan_gTo make 3rd-party platforms viable they need a stable ABI from mircommon08:13
alan_gTo make 3rd-party server viable they need a stable ABI from mircommon + miral08:13
dufluWe break libmirplatform often too08:13
alan_gYep, all part of the big question08:13
dufluBTW, I just logged some relevant bugs08:14
alan_gI think we're now at a point where it is feasible, and getting important enough08:14
RAOFAn alternative: we ask legal to get the appropriate verbiage to make it clear that loadable platform modules *aren't* covered by the GPL, and then not expect them to link to mircommon.08:14
alan_gmircommon provides stuff like "Rectangles" that we should be able to make stable08:15
RAOFAbsolutely.08:15
RAOFWhich is why having modules expect the server to supply those symbols is perfectly sensible :)08:15
RAOFActually, if mirclient stops linking with mircommon then we lose the pressure for mircommon to be the things common to client and server.08:16
dufluBTW I've tried some experiments intentionally breaking things. Turns out a full wildcard * does not break existing symbols, but a partial one like ReadableFd does.08:16
RAOFWhich would make stripping out all the bits which *aren't* super-stable easier.08:17
dufluI would also like to build one libmir* of everything with all symbols for testing, and then strip the private bits. No more object libs08:17
alan_gI don't see a problem with linking to mircommon + mirplatform - we "just" need to ensure they only publish stable stuff.08:17
RAOFYeah, that's right.08:18
dufluRemind me why mirplatform exists?08:18
RAOFOne of the current problems is that mircommon is that stable stuff, *plus* the bits shared between server and client that we actively change.08:18
alan_gTo define the interface between server and platform08:19
alan_g(in an LGPL library)08:19
duflualan_g: Remember we have the graphics and input ABIs which are different to mirplatform08:19
alan_gFollows from long discussions with legal08:19
dufluOh. Too lawyerish for a Friday08:20
RAOFYeah; again, an alternative would be an explicit grant of “no, your modules don't need to be GPL”08:20
alan_gYeah, we'll not solve it here08:20
alan_gOne of the current problems is that mircommon is that stable stuff, *plus* the bits shared between server and client *and platform* that we actively change.08:21
RAOFAnd one of the problems there is that I fully expect us to change the *platform ABI* reasonably frequently.08:23
dufluAnother reason why I would prefer our namespaces followed the library names... so you could also find #include "mir/common/*"08:23
RAOF(For example: I don't think there's *ever* been an Xorg release that didn't change the graphics ABI)08:23
alan_gI think we now have enough platforms to shake out the right abstractions08:23
dufluRAOF: Xorg has the benefit of less frequent releases08:23
dufluSlightly08:24
RAOFduflu: Yes. I absolutely don't expect us to be bumping our platform ABI every release. But once a year seems perfectly plausible.08:24
RAOFNow, our platforms are doing an easier job for us than Xorg's platforms, but still.08:24
dufluRAOF: A separate stable trunk to save up those breaks?08:24
RAOFSupport >1 ABI.08:25
dufluOr that08:25
RAOFWe've got it all set up so that we can (reasonably easily) do that!08:25
* RAOF EOD. For the moment.08:25
dufluOr dinner08:25
=== chihchun_afk is now known as chihchun
duflualan_g: A bug that exists in mir_proving_server can't be MirAL can it?08:39
dufluOr can it08:39
alan_gThey could have the same bug08:39
alan_gBut MirAL code isn't in proving_server08:40
dufluIndeed08:41
dufluSo bug invalid for MirAL08:42
=== chihchun is now known as chihchun_afk
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
alf_Saviq: greyback: Hi! How do apps tell unity8/qtmir that they want to keep the display on? Is it done through QT?13:05
greybackalf_: not through Qt itself, I think people use the dbus api that powerd offers to keep the display on13:22
alf_greyback: ok, how is losing focus handled?13:23
greybackalf_: I *think* we trust the application to be good13:23
greybackI'd need to look into it13:23
greybackgoing off old memories here13:23
alf_greyback: thanks, this came up again because I am working on the snap interface for keeping the screen on, and wasn't sure if things had changed.13:25
greybackno changes afaik13:26
alf_greyback: Ideally, as discussed in the past such requests should be sent to Unity8, and then unity8 can decide what to do depending on form factor, focus etc13:27
greybackalf_: correct13:27
greybackbut nothing has happened on that front13:27
alf_greyback: yeah, I will update the snap iface to work with what's currently in place and we can revisit the topic (perhaps in the sprint)13:28
=== JanC is now known as Guest73904
=== JanC_ is now known as JanC
alan_gbschaefer: as my pointer confinement guru - could you check the miral integration? https://code.launchpad.net/~alan-griffiths/miral/confine_pointer/+merge/30663514:51
bschaeferalan_g, yes!14:52
bschaeferlooks nice14:53
bschaeferthe only thing /me trying to remember if you'll need to specifically do something on a window creation spec for confinement14:54
bschaeferalan_g, also how come you have to do the #if?14:54
alan_gmiral presents the same API/ABI on xenial as on yakkety14:55
alan_gBut xenial is on Mir-0.2214:55
bschaefero dang /me hopes it wont become an #if nightmere :|14:55
bschaefernightmare*14:55
bschaeferalan_g, without actually testing it looks good to me (have you tried out the example?)14:56
* alan_g is only supporting LTS, Yakkety, and lp:mir14:56
alan_gbschaefer: not yet14:57
* alan_g remembers not knowing what the example should do14:57
bschaeferalan_g, i can re-compile and test it out after the standup14:57
bschaeferalan_g, i made a mir demo :) (mir_demo_client_pointer_confinement)14:57
alan_gI remember not knowing what to expect from that14:58
=== dandrader is now known as dandrader|afk
bschaeferalan_g, o .. right well you should be able to move the red square for ever when pointer confinement is on14:59
bschaeferwhen its off your cursor will go our of the screen boundary14:59
alan_gI need something more recent that 0.24 don't I?15:01
bschaeferalan_g, yeah there are some changes in 0.25 that fixed some pointer confinement issues15:03
bschaefermainly with WM stuff15:03
bschaefermoving/resizing etf15:03
bschaeferetc*15:03
alan_gI mean for the demo15:04
bschaeferalan_g, hmm i thought the demo was in 0.24 but i only have trunk mir branch /me checks15:04
alan_gbschaefer: could you try it then - miral builds much faster15:05
bschaeferalan_g, yeah i must have been compiling a chunk of mir not miral when i mention it the other day (took less then a min for miral)15:06
bschaeferhttp://bazaar.launchpad.net/~mir-team/mir/development-branch/view/head:/examples/pointer_confinement.c15:06
bschaeferalan_g, but yeah ill test after standup15:06
=== dandrader|afk is now known as dandrader
alan_gbschaefer: well, it seems to do something15:43
bschaeferalan_g, haha thats good (was answering an OSK)15:43
bschaeferalan_g, theres hot keys to disable pointer confinement15:43
bschaeferp i think15:43
alan_gYes, I had to read the code. and "F" to toggle fullscreen (What happened to F11?)15:44
bschaeferalan_g, umm me breaking the standard :)15:44
alan_gYes, you ignore "close the window" too15:45
alan_g;)15:45
bschaeferhaha15:46
bschaeferi thought i put q back in15:46
bschaeferor tried to filter those events through...15:46
bschaefer(do the underlying handle event)15:46
* bschaefer compiling now15:47
bschaeferalan_g, umm invalid free / next15:48
* bschaefer checks things15:48
bschaeferhuh using 0.24 but i tihnk i compiled against 0.25 for some reason15:49
alan_gI mean mir_event_type_close_surface15:50
bschaeferalan_g, o ... that would have been something to use15:50
alan_gIt's only an example, but...15:50
bschaeferyeah i like examples to be just as good as our code15:51
bschaefer(mainly people look at examples to write their code)15:51
bschaefer_that was strange..15:54
alan_gldconfig?15:55
* bschaefer_ doesnt understand joke15:56
bschaefer_alan_g, i hit that mirshell session next thing15:56
bschaefer_(possibly) where input didnt work but went to a tty to attempt to step through it and once i hit the tty hot keys my machine just stopped15:57
alan_gbschaefer_: that's an evil bug.15:58
bschaefer_yeah... im trying to get you more info15:58
bschaefer_alan_g, i seem to hit it only using the x11 platform15:58
alan_gthen possibly one for camako15:59
bschaefer_possibly just need more info before i can really poke anyone :(15:59
bschaefer_a way to reproduce would be nice :)15:59
alan_gyes, might mir-trunk related - which I don't use be default16:00
=== bschaefer_ is now known as bschaefer
bschaeferalan_g, very true i use trunk mir16:00
bschaefercould be an ABI issue as well?16:00
bschaeferno16:00
bschaeferthat would cause a crash...16:00
alan_g*probably*16:00
bschaeferi suppose if it ... somehow ABI match the bytes to a different function...16:00
bschaeferhaha that would be funny...16:01
=== dandrader is now known as dandrader|afk
anpok_i think thats because the x11 platform tries to grab the keyboard?16:18
alan_gprobably need to ssh in from another computer16:20
bschaeferalan_g, i was lucky to get into a tty for that current backtrace we have... but it froze this last time16:22
bschaeferanpok_, could be, the strange thing all mouse events work fine16:22
bschaefer(it just almost feels like the mir shell keeps grabbing focus ... ie keyboard grab?)16:23
alan_gbschaefer: http://voices.canonical.com/alan.griffiths/2016/09/23/debugging-mir-servertoolkit-interactions/16:56
bschaeferalan_g, sweet thanks i will be using this!16:57
bschaeferfor more debugging info for reports16:57
* bschaefer will be sure to include logs for reports as well16:58
alan_g:)16:58
=== dandrader|afk is now known as dandrader
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader

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