IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2014/12/14)20141215 
Robin_Watts >tor8 Post arrived. Many thanks!10:57.10 
  D'Oh. Wrong talker.10:57.17 
avih tor8: https://github.com/mpv-player/mpv/pull/135111:24.45 
  so try to make api changes less frequent ;)11:27.43 
tor8 avih: cool!11:28.07 
avih :)11:28.18 
tor8 avih: you've only had to suffer through one API change, IIRC11:28.25 
avih it's a big patch, probably has bugs with only me testing it until now11:28.41 
  2 i think, actually. to and back from context+flags at newstate :)11:29.21 
  and the function names.11:29.30 
  no biggie :)11:29.34 
tor8 yeah, that was a short-lived one. the function names is the one I was thinking of.11:29.43 
avih tor8: the mpv guys have some concerns with APL3 compatibility with GPL2. would you mind joining the conversation at #mpv-player-dev at freenode?11:33.08 
Robin_Watts avih: The only difference between AGPL3 and GPL3 is in what happens if you have code running on a server on the web.11:39.27 
avih mpv is GPLv2...11:39.55 
Robin_Watts I can't see why you'd ever want the MPV code to run on a server (it might get served by the server, but it runs locally, right?)11:39.58 
  hence the question is probably GPLv3 vs GPLv2, right?11:40.11 
avih we'd want to distribute mpv binaries, which we want to include mujs...11:40.33 
tor8 the "problem" as it is, is between GPLv2 and AGPLv3 (the extra A-clause is possibly incompatible with GPLv2, and there is no language to make an exception like there is with GPLv3)11:41.14 
  Robin_Watts: so in summary, the A in the AGPLv3 creates licensing incompatibility headaches for GPLv2 projects12:00.11 
Robin_Watts right.12:16.40 
tor8 might be worth discussing whether moving to AGPLv3 has been worth the trouble, or whether we should just go back and be more licensing friendly with plain GPL12:17.52 
Robin_Watts tor8: For gs etc, where running on a server is a big thing, I think it's worth it.12:20.01 
tor8 Robin_Watts: clause 13 of the AGPL (the A clause) has an explicit exception for linking with GPLv312:20.08 
Robin_Watts For mujs, maybe less so.12:20.12 
tor8 which works for GPLv2+ projects but not GPLv2only12:20.23 
Robin_Watts but then embedding js on a tiny iot device which offers a webserver is a use case for mujs.12:21.16 
tor8 right, dropping the A is irrelevant for mpv. their beef is with GPLv3. not much we can do there as things currently stand.12:29.01 
avih Robin_Watts: "iot"?12:53.34 
kens2 IoT = Internet of Things13:07.06 
avih right13:08.21 
  Robin_Watts: tor8: summary: either mujs adds GPLv2 or some other GPLv2only compatible license, or we're at a licensing issue which will most probably make mujs impractical for mpv.13:08.45 
  in a scale of 1-10, how likely is this ^ to happen?13:09.37 
Robin_Watts And the mpv developers have an objection to moving to GPLv3?13:09.47 
  I think it's unlikely to happen, certainly in the short term.13:10.03 
avih it would seem so. seems they already have issues with GPLv2+13:10.09 
Robin_Watts mujs is a new product, and we're still feeling out how to make money from it.13:10.32 
  Releasing a version under GPLv2 is a bell we can only ring once.13:11.04 
avih yeah, not complaining. trying to understand where we stand, and regretting not checking the license compatibility issues deeper earlier. shit happens...13:12.07 
  i put some time into adding mujs support, but IMO licensing issues carry more weight. so right now this probably means the patch will not integrate into mpv-master, and i probably won't keep rebasing it. which means it's likely to go into oblivion.13:14.14 
Robin_Watts avih: That is a shame. It would appear that you've been a really useful source of bug reports/fixes.13:17.37 
avih Robin_Watts: i'd like to think of myself more than that, but yeah, that too :)13:18.34 
Robin_Watts sorry, I was in no way meaning to denigrate your contribution - rather trying to acknowledge it.13:19.39 
avih i know, no worries :)13:19.50 
  i did have fun (and some pain) with it. the thing which i think is a shame is not my wasted time (well, a bit of that too) but mostly that mpv probably missed an opportunity to integrate a very familiar scripting language which could bring more users to use scripting (lua is, afterall, less common than js)...13:21.23 
  or, if you prefer, that mujs missed an opportunity for much wider audience than it had till now (and there were quite a few mujs crash bugs which were not fixed while only mupdf was using it)13:26.19 
  since mpv is slowly but surely replacing mplayer as the best video player around13:27.07 
  and me.. i just wanted to script mpv with js ;)13:28.56 
Robin_Watts avih: You could ship 2 binaries of mpv, one with mujs and one without? The one with would have to be GPLv3, and then end users could pick?13:30.03 
avih anyway, if the licensing situation changes, pls ping me13:30.09 
Robin_Watts avih: We will have a staff meeting on here tomorrow (in about 26 hours time)13:30.31 
avih Robin_Watts: we could, but apparently it's also an issue for libmpv13:30.33 
Robin_Watts We'll try to raise it again tomorrow.13:30.42 
  AIUI (and IANAL of course), it's not a problem for any GPLv2 code to be released as GPLv3.13:31.13 
  s/again/at the meeting/13:31.25 
avih the plan was to make it a default component, but if it can't be expected to work on cases mpv cares about (such as libmpv), then it probably better off without it, IMHO.13:32.16 
Robin_Watts Would mujs have been part of libmpv?13:32.33 
  Or would libmpv just have had the ability to use mujs if present?13:32.47 
  The former would be a problem, the later not, AIUI.13:33.07 
avih as for the license compatibility issue, tor8 was at #mpv-player-dev having this discussion a bit earlier, and i posted here what i understand to be the summary of this discussion.13:33.08 
  IANAL either, but it appears that libmpv has an issue with AGPL3 and even with GPLv2+.13:34.02 
tor8 my takeaway from the discussion is that mpv care more about adoption than open source, which makes me wonder why not use BSD in the first place13:34.47 
avih Robin_Watts: but you're welcome to pop to #mpv-player-dev and discuss this issue with wm4 (the main maintainer and strong opinion-ed about licensing guy)13:34.49 
Robin_Watts I am not trying to change the opinions of anyone.13:35.11 
avih neither do i13:35.26 
tor8 but with a hundred cooks and old code base license, relicensing to BSD is nigh impossible13:35.31 
Robin_Watts If libmpv was to have mujs bundled into it, then I completely see that there is a problem.13:35.37 
tor8 Robin_Watts: I suspect it's the which compile-time options do we use for this distribution question that's the problem with libmpv, and not wanting to maintain multiple variants13:36.36 
Robin_Watts If, on the other hand, libmpv was simply to have a scripting plugin API as part of it that could be entirely GPLv2.13:36.45 
  Then we could have a wrapped up mujs plugin that used that API. And people could only install that plugin if they were happy with GPLv3.13:37.21 
avih Robin_Watts: licensing issues aside, it would seem to me that both mujs and mpv has much to gain from such integration. but apparently the licensing issues stand in the way right now, and personally i fully respect those issues. but if you guys and wm4 could sort it out.. i'll be the last to say anything against it ;)13:37.51 
Robin_Watts but that does lead to a more complex situation than just the "here is 1 binary, it does everything" situation.13:37.52 
tor8 Robin_Watts: a dlopen-style plugin interface.13:38.00 
Robin_Watts tor8: I have no opinion on what sort of mechanism, but sure.13:38.32 
tor8 Robin_Watts: yeah. I think 's the way to do plugins as optional components rather than built-in.13:40.15 
Robin_Watts avih: I suspect it wouldn't be too much work to convert your changes to mpv into such a form.13:42.05 
  but then you'd presumably want to ensure than the mpv guys were happy with that approach before going to any more trouble.13:42.33 
avih Robin_Watts: not sure exactly what form it is, but i suspect you're right. however, before you add those changes, i'd still discuss it with wm4 to make sure it ends well :)13:42.56 
Robin_Watts avih: The changes would be to your code.13:43.16 
  Let me see if I can describe it some more.13:43.24 
avih i'm fine with changes to my code as long as it doesn't create issues for mpv13:43.36 
Robin_Watts At the moment, you have some changes to mpv that perform calls into the mujs lib, right?13:43.55 
  I'm suggesting that you recast those changes a bit.13:44.13 
avih platform being mpv/mpvlib ?13:44.15 
Robin_Watts I didn't mention platform.13:44.36 
avih (and yes, it links with libmujs)13:44.37 
  sorry, perform. yes, it does13:44.47 
Robin_Watts Right.13:44.53 
  So I'm suggesting that you split that code in two.13:45.03 
avih i'm listening13:45.15 
Robin_Watts You have a layer that mujs calls.13:45.16 
avih ?13:45.32 
  mujs doesn't call anything...13:45.48 
Robin_Watts Bah. Typo. Let me try that again.13:46.02 
avih :)13:46.07 
Robin_Watts You have a layer that mpv/mpv lib calls.13:46.15 
avih ok13:46.23 
Robin_Watts This layer checks for there being a mujs plugin available. If there is, it loads the plugin, and then forwards the calls through to that plugin.13:46.24 
avih you mean in runtime?13:46.38 
Robin_Watts All that code is GPLv2 and can be bundled as part of libmpv/mpv.13:46.46 
  yes, it's a runtime check.13:46.50 
avih including mujs.h?13:47.04 
Robin_Watts No.13:47.11 
avih ah13:47.20 
  i need to wrap that too then13:47.26 
Robin_Watts No mujs specific dependencies in that part.13:47.26 
tor8 the code in mpv would dlopen a shared library containing mujs and some wrapper code.13:47.47 
avih yeah, i understand13:47.57 
Robin_Watts All the mujs specifics go into the other half of the code with mujs itself.13:48.08 
avih but then we'll have to distribute that library also, and it's back to square one, is it not?13:48.14 
Robin_Watts That forms the 'mpv mujs plugin'.13:48.26 
tor8 then call a function in the dlopened library, passing in a struct of function pointers (the mpv functions that the mpv-mujs-plugin needs to call) and it also returns a struct of function pointers that the mpv-side can call13:48.27 
Robin_Watts avih: The end point of this is that mpv/libmpv can continue to be shipped as GPLv2.13:48.59 
avih but that dlopened library (let's call it libmujsmpv) will have exactly the same issues we have now13:49.02 
tor8 then you can make the mujs+wrapper code optional, a runtime link dependency13:49.07 
  and ship it separate from mpv, but if it's there it can be used13:49.19 
Robin_Watts And if people *choose* to, and are happy with AGPLv3 they can also install the mpvmujsplugin.13:49.39 
tor8 and hence, you can ship mpv with its gpl2 license, and the plugin (which at the time you load it) will make the whole gpl313:49.50 
Robin_Watts So you're keeping the main project 'pure', but enabling users to make the choice if they want.13:50.24 
avih this would need a distribution channel for mpvmujsplugin, separate from mpv13:50.30 
  a maintenance nightmare...13:50.47 
Robin_Watts (And of course, it means anyone else could implement a different plugin that didn't use mujs if they so wished)13:50.55 
avih TBH, for the relatively small piece of code which mujs is, it sounds to me like too much overhead13:51.41 
  if it can't distribute with mpv, then it's back to square one mostly IMO. maybe step 1.5.13:52.32 
  ("small piece of code" is actually a complement for the coding, as it's seriously useful IMO)13:53.13 
Robin_Watts avih: The only further argument I can offer for this solution is this...13:53.54 
  if the split of your code is done sufficiently nicely, then it need not have any js specifics in there.13:54.25 
  You can implement a generic 'scripting plugin interface' for mpv. So that other people can add plugins for any language they want.13:55.02 
tor8 like the existing Lua plugin interface13:55.32 
avih rai don't disagree. but i already have mujs specific code, so if i'm rewriting and refactoring, i might as well start again with something which has a more compatible license ;)13:55.33 
Robin_Watts C#, VisualBasic, python, perl...13:55.35 
avih Robin_Watts: ^13:55.39 
  Robin_Watts: the "generic scripting interface" already exists. the 2K LOC the patch contains make it use mujs13:56.35 
Robin_Watts avih: But it's not a plugin interface, right? It's a compile time thing.13:56.59 
avih most of the code is for converting between mpv to javascript data structures, adapting argument types between js calls to mpv's api, and generic non-mujs-specific js code which implement modules/require, js timers, etc13:57.58 
  yeah, not generic as in runtime loading.13:58.13 
Robin_Watts avih: Right, the thing that's missing is the runtime loading. With that, the issues of GPL compatibility are moved from the binary maker to the installer.13:59.30 
avih Robin_Watts: the issue is that if it can't be distributed together with mpv/libmpv, then it loses much of its attractiveness.14:00.22 
  you can have a look at the patch here https://github.com/mpv-player/mpv/pull/1351/files14:00.37 
Robin_Watts avih: The MPV guys would be unhappy hosting a second download (the plugin) alongside their binary downloads?14:01.43 
avih i'm willing to put more effort into making it happen if that's possible, but if it can't be distributed together with mpv, then i don't want to put that time14:01.53 
Robin_Watts I completely understand.14:02.21 
avih Robin_Watts: mpv is distributed with many linux distributions. it's more than about hosting14:02.40 
Robin_Watts avih: Lots of linux distributions have to cope with this stuff already. Ubuntu has separate repos for differently licensed things.14:03.29 
avih Robin_Watts: this is not my natural playground (licensing issue and working around them). if you can sort something out with wm4 from mpv, then i'm willing to put the work to implement it.14:04.39 
yukam (jbig2dec) finally, solved 042_1[34].jb2 WTFness; in addition to half dozen inane jbig2dec bugs, they were produced by pre-standard encoder (that have not handled REFAGGNINST=1 as special case)14:23.10 
avih Robin_Watts: Robin_Watts: no worries, i enjoyed it and learned while doing this. even if mpv doesn't end with js support soon. and i do think it's an impressive piece of code, so thanks for maintaining it (tor8 mostly probably) :)14:42.38 
  and i'm fine with it and take the blame for not checking the licensing issues deeper than what i have. see, another lesson learned ;)14:43.33 
tor8 avih: like Robin I am sorry that your work seems like it will come to a sad end14:43.41 
  and I really appreciate your work in helping to iron the kinks out of mujs14:44.04 
avih tor8: thx. and cheers for mujs and your great support for it :)14:44.19 
tor8 avih: any time.14:44.53 
avih and if you think the licensing issues could somehow be solved, do ping me (that is, if i still haven't started using another embedded js implementation yet)14:45.09 
kens Gahhh!!!! The PCL interpreter gaily replaces the4 color procs in the device.......16:42.25 
Robin_Watts kens: It stashes them and replaces them with other ones that call through to the originals?16:49.56 
kens It stahes them then replaces tehm with completely different ones. Later it puts them back.16:50.16 
Robin_Watts boggle.16:50.24 
kens THis doesn't work at all for a forwarding device16:50.25 
  Because the forwarding device passes the call on to the underlying device, only it now has different color mapping procs.....16:50.52 
  Well, differnt to the ones that PCL thinks it has16:51.13 
  It looks like a nasty hack to handle 'monochrome mode' (aka gray scale)16:51.31 
Robin_Watts yes.16:52.24 
kens Its going to have to change.16:52.34 
  I have a work around in place to test it with16:52.45 
  The more I look into all this, the cleasre it becomes why my bbox forwarding device didn't work.16:53.45 
Robin_Watts I think in general it's a bad thing to do.17:00.05 
  It's OK for the device to switch bits of itself out, but callers should never delve into the device.17:00.23 
kens Yes, I agree too (and this applies to the clist too).17:00.39 
  It also breaks what I'm trying to do totally.17:00.50 
Robin_Watts Well, the clist is a slightly different animal.17:01.00 
kens But its not the only place that does this17:01.01 
Robin_Watts The clist is *part* of the device, and therefore is (more) permitted to change the internals of the device. If you're going to be a clist device, you have to accept that the clist is going to molest you in personal places.17:03.19 
kens I don't think the clist *should* be part of the device.17:03.34 
Robin_Watts That's a separate argument :)17:03.46 
kens The clist should be a device in its own right, in front of the rendering device17:03.50 
Robin_Watts At the moment the clist *is* part of the device. It would be much nicer as you describe.17:04.03 
kens Eventually, I may push ot do that work too, but not till I've recovered from this particular nightmare17:04.20 
mvrhel_laptop morning17:04.27 
kens Morning Michael17:04.34 
Robin_Watts But the caller really should not be fiddling with such stuff.17:04.36 
  morning.17:04.38 
kens Robin_Watts : yeah, but like I said, its not the only place :-(17:04.50 
Robin_Watts kens: Is the list of such places large?17:05.04 
kens Which leaves me with some rather outre arsing about to work around the problems.17:05.06 
  Robin_Watts : I no longer remember, I;ve been working on this too long. If you want to guess you can look at the device_subclassing branch on my repo. All but the latest PCL fix is there17:05.45 
  OK so PostScript, PDF and PCL all now work with all the devices we test on a cluster push, just some weirdnesses with XPS to go.17:07.36 
  But at least that's the pdfwrite fmaily, clist and non-clist modes for the common rendering devices (and including the odd psdcmyk device)17:08.15 
  Apparently I'm going out for a pizza... Night all17:12.19 
mvrhel_laptop cool got the crazy encoded images working for xpswrite19:55.08 
 Forward 1 day (to 2014/12/16)>>> 
ghostscript.com
Search: