| <<<Back 1 day (to 2014/07/09) | 2014/07/10 |
mattchz | robin_watts: yes, Crashlytics works on iOS, although Iâve not separate out the repos. Iâll do that today. | 09:12.12 |
| btw, Crashlytics asked me a few questions about our use of the NDK (if we use SDL, and how we did our builds). | 09:12.52 |
| the response was âstay tuned" | 09:12.58 |
Robin_Watts | ok. | 09:16.17 |
paulgardiner | tabstops have a tjc and tlc. Whatsat then? | 10:54.02 |
| Ah justification | 10:56.58 |
Robin_Watts | hmm. jbig2dec seems... unfriendly. | 11:45.25 |
| want to know how big the image is? well, you'll have to feed us all the data, then we'll decode it, then you can look at the thing we produce. | 11:45.53 |
| So doing layout without decoding? urm, no. | 11:46.21 |
| Doing decode in strips? no. | 11:46.30 |
jogux | :-( | 11:46.46 |
Robin_Watts | tor8, chrisl, kens: You have some experience of this thing I believe. Am I missing anything? | 11:47.18 |
tor8 | Robin_Watts: I'm not familiar with jbig2dec's internals | 11:51.03 |
| but there is a chunk ("segment") in jbig2 which gives the image size | 11:54.32 |
| so it should be fairly easy to scan the segments, look for a "type 48 (page information)" segment and get the width and height from that | 11:55.26 |
| but from what I can see in jbig2dec it only does that as part of complete decoding so we'd have to extend jbig2dec | 11:57.16 |
| or do it externally | 11:57.21 |
| decoding in strips would only save you some memory, you'd still have to decode the complete image due to how the arithmetic coding works | 12:00.07 |
henrys | Robin_Watts: I wonder if luratech would be easier | 12:55.24 |
Robin_Watts | hadn't considered that. | 13:06.39 |
| I think I'm close to having this done (or at least, the decoder interface part of it done) | 13:07.06 |
AhmEico | hello... i have a Q about mupdf licensing | 13:31.45 |
| is anyone here able to help? | 13:31.55 |
henrys | you might read this first if you havenât: http://www.artifex.com/page/licensing-information.html | 13:33.06 |
| AhmEico: ^^^ | 13:33.16 |
AhmEico | I hadn't seen that page. I am reading it now... it might not answer my Q though. | 13:34.52 |
Robin_Watts | AhmEico: MuPDF is licensed in 2 ways. Firstly, if you can abide by the terms of the GNU AGPL you can use it under that license. | 13:37.22 |
AhmEico | Okay... so here's the Q. | 13:37.38 |
Robin_Watts | Among other things that would mean that you had to be prepared to give copies of the source for your full application away to anyone who wants it (not just the bits derived from MuPDF) | 13:38.12 |
AhmEico | If I write, say, an android app... and make it available in the store under a free-ad/non-free-noad model... but make the source code available... do I need a commercial license? | 13:38.24 |
Robin_Watts | AhmEico: Anyone who (say) paid for the non-free-noad version, would be entitled to demand a copy of the source code. | 13:39.14 |
| The complete source code. | 13:39.19 |
AhmEico | yes | 13:39.27 |
Robin_Watts | They could then rebuild from source, and put that version on the store for free. | 13:39.36 |
AhmEico | and they could compile their own no-ad version | 13:39.38 |
| if they felt like it. sure | 13:39.48 |
vtorri_ | hey | 13:40.09 |
ghostbot | Welcome to #ghostscript, the channel for Ghostscript and MuPDF. If you have a question, please ask it, don't ask to ask it. Do be prepared to wait for a reply as devs will check the logs and reply when they come on line. | 13:40.09 |
vtorri_ | tor8: is it normal that the CHANGES file is not updated in the 1.5 release (not in git btw) ? | 13:40.43 |
| tor8: for mupdf, of course | 13:40.53 |
| nor* in git | 13:41.20 |
Robin_Watts | AhmEico: Google play *can* be used with GNU GPL stuff it seems. | 13:42.20 |
| But Apples app store cannot. | 13:42.27 |
AhmEico | Another Q about licensing ... if an app calls a library or function or something from another project, does the source from that other project have to be included? | 13:43.34 |
Robin_Watts | AhmEico: If the two are statically linked together, yes, unquestionably. | 13:43.57 |
AhmEico | dynamically linked | 13:44.13 |
Robin_Watts | If dynamic linking is used, it's more complex, but there are those who say yes. | 13:44.17 |
AhmEico | From the muPDF perspective? | 13:44.31 |
jogux | In this context, where they are both shipped together in a signed app bundled, it seems likely that you would need to treat the entire combined worked as AGPL, imho. | 13:44.57 |
Robin_Watts | If you install both things as one, then yes. | 13:45.01 |
AhmEico | What about data files or defs... Eg, if I had to include some dev keys or whatever for the Play store or the ad system or whatever | 13:45.51 |
Robin_Watts | If you install MuPDF as a completely separate app, so it can be installed/uninstalled/upgraded separately, then the situation is less clear. | 13:46.01 |
| AhmEico: People are entitled to ask for 'a complete set of source'. | 13:46.19 |
jogux | so your ad system would need to have the source available I think. | 13:46.41 |
Robin_Watts | I suspect you could get away without the signing keys, because they can build and run without that. | 13:46.43 |
| but the ad system is trickier. | 13:47.02 |
jogux | robin_watts : I'm not 100% sure about the signing keys - particular with reference to the definition from the AGPL ""Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the | 13:48.11 |
| modified object code is in no case prevented or interfered with solely because modification has been made." | 13:48.11 |
Robin_Watts | jogux: It's a tricky one, yes. | 13:48.29 |
| But without the signing keys, you can build a version of the app that will work on all your devices. | 13:48.48 |
| You just can't reupload it to the original distribution site as if you were the author. | 13:49.19 |
jogux | Yes. I agree it's not 100% clear cut. | 13:49.27 |
| That clause is really the 'tivo' one, so I don't believe was intended to cover Android apps | 13:49.52 |
henrys | AhmEico: IMHO if you canât get an answer from the web page you should seek legal advice, which canât be found here ;-) No lawyers here just engineers | 13:49.56 |
Robin_Watts | The GPL says you must have the freedom/ability to distribute, it does not say you should have the freedom/ability to supplant the existing one. | 13:49.58 |
| (on the existing distribution platform) | 13:50.26 |
| jogux: The tivo clause is intended to cover where a piece of software needs to be signed in order to be run. | 13:51.06 |
| and that is not the case for android. | 13:51.20 |
| (the default debug key is sufficient to allow it to be run) | 13:51.48 |
jogux | nods. | 13:51.58 |
AhmEico | Also, what if the app pulls data from the web. Eg, suppose the app uses pdf to display data. Does that data fall under the AGPL? Because it's constantly changing... how can anyone be expected to provide it all? | 13:52.09 |
| So I guess... if the app is able to run without personal signing keys or other personal data, it might be okay to exclude it? Like data that anyone can substitute with their own? | 13:53.50 |
jogux | ahmeico : pdfs that mupdf is being used to display would not fall under the AGPL afaics. | 13:54.01 |
Robin_Watts | AhmEico: If the app is tied to a web service, and it ships with magic keys to let it activate that web service, then people have the right to get those magic keys too, I think. | 13:55.13 |
henrys | chrisl: are you familiar with the duplex implementation in ghostscript? | 13:55.24 |
Robin_Watts | If the app is used *on* the webserver, then we're into the whole AGPL vs GPL thing. | 13:55.35 |
AhmEico | no. what is the the duplex implementation? | 13:55.49 |
Robin_Watts | but if it's run on a device and merely accessing a webserver over the net, that's fine. | 13:56.01 |
AhmEico | It would just access the webserver for data that is liable to change. | 13:56.38 |
Robin_Watts | AhmEico: That's fine. | 13:56.50 |
AhmEico | That data could be provided by any web server | 13:57.00 |
| And anyone would be able to make their own data that the app would use | 13:57.20 |
| And most likely, I wouldn't bother encrypting the data. So they could use mine if they wanted; as long as they don't overload the servers I might end up using. | 13:58.13 |
| This was helpful, I think. | 14:00.30 |
| How much does the commercial license cost? | 14:04.30 |
| Eg, what if I just make the app completely free of cost, but don't want to have to worry about whether I have to distribute private keys or whatever. Then it wouldn't make sense to spend a whole lot of money on the license. | 14:05.24 |
tor8 | vtorri_: there are no changes in 1.5, only bugfixes | 14:08.43 |
Robin_Watts | AhmEico: We have no set price for the license, it's on a case by case basis. | 14:14.49 |
| You need to contact scott.sackett at artifex.com and ask. He'll send back a massive list of questions. Just answer them as best you can. | 14:15.44 |
| Lots won't apply to you, but the idea is to give him the clearest idea you can of what you want to do. | 14:16.10 |
| He'll then give you a quote. | 14:16.17 |
AhmEico | Okay. I don't even know at this point if I want to make this app b/c at this point, I don't know how to program for Android | 14:16.32 |
Robin_Watts | Sure, well, at least with MuPDF you can experiment before you commit yourself. | 14:17.09 |
AhmEico | Thanks for your help. Guess first step is learn to program for Android. | 14:18.49 |
henrys | paulgardiner: no response from Good (Matt). | 14:21.11 |
paulgardiner | henrys: no. Not a word | 14:22.40 |
chrisl | henrys: I haven't had cause to look at duplex in Ghostscript - I assume it follows the PLRM requirements | 14:23.02 |
henrys | chrisl: Iâm looking at a pcl bug and it is sort of tricky figuring out what the device should do vs. the language. For pcl I really need a way to query the device for Duplex capability to do everything right. | 14:24.36 |
Robin_Watts | sounds like a job for devspecop. | 14:25.56 |
| Unless there is already a mechanism for asking about duplex? | 14:26.10 |
chrisl | henrys: given the way the Postscript interacts with devices, I'm not sure there will be a way to make that determination currently | 14:26.10 |
jogux | paulgardiner: could you upload the dsyms for the appstore release of SO2 somewhere please? or possibly the whole archive if that's easier. | 14:28.05 |
chrisl | henrys: you might be able to make use of the duplex and duplex_set values in the device - I must admit, I understood the meanings at one time, but I can't remember now :-( | 14:29.00 |
paulgardiner | jogux: it's in /home/releases/issues/8120, I believe | 14:30.02 |
| on casper | 14:30.10 |
jogux | ah, great, thanks :) | 14:30.14 |
chrisl | henrys: ah, it looks like if Duplex_set >= 0 the device should support duplexing - but I don't think you can interrogate that currently | 14:30.32 |
paulgardiner | I zipped up everything from the archive, so I'd hope the dsyms are there | 14:30.53 |
jogux | looks like they are, yep - fetching now | 14:31.16 |
henrys | chrisl: oh yes I remember that mess. | 14:33.15 |
paulgardiner | ah good | 14:33.38 |
chrisl | henrys: well, other than the poor naming, it's hard to see a better approach (although, possibly the implementation could be nicer)..... | 14:34.25 |
| Hmm, the spec_op implementation isn't ideal for this type of case :-( | 14:37.34 |
| Oh, actually, I take that back - reading the wrong bit code! | 14:38.04 |
jogux | paulgardiner: hm. xcode is still refusing to symbolicate the crash I downloaded from itunesconnect. :-S | 14:38.51 |
paulgardiner | That's a pain. | 14:40.34 |
Robin_Watts | I think "symbolicate" may be my new favourite word. | 14:41.51 |
chrisl | Sounds like a Glaswegianism | 14:43.22 |
| Derivative of "maulicate"..... | 14:44.21 |
jogux | I got it to symbolicate in the end :-) | 15:07.24 |
Robin_Watts | chrisl: That'd be "needs symbolicating." | 15:07.57 |
| sorry, "needs symbolicated." | 15:08.24 |
chrisl | I prefer the former.... | 15:11.33 |
Robin_Watts | the former is gramattically correct. The latter is more scottish, I think. | 15:12.09 |
rayjj | chrisl: I saw your comment about the use of sgray.icc with png16m. I don't know why it works, I just tried it and it works. It may be a fluke, or that the documentation does need some change. | 15:39.39 |
| mvrhel_laptop: do you know off-hand why I got by with using -sOutputICCProfile=iccprofiles/sgray.icc -sDEVICE=png16m | 15:40.41 |
mvrhel_laptop | I don't understand the question? | 15:41.27 |
| rayjj | 15:41.32 |
| I need to head out for about an hour | 15:41.51 |
rayjj | it's for a free (PITA) user so I am not inclined to do much/any work. | 15:41.53 |
| mvrhel_laptop: I posted a method that works for bug 695353 and chrisl pointed out that according to the docs it should not have worked. | 15:42.37 |
| I was mainly interested in putting an end to that extensive interchange from a PITA submitter | 15:43.17 |
mattchz | is there some place I can put the private git repository containing the crashlytics stuff? | 15:43.37 |
| presumably the same location as SOT? | 15:43.46 |
jogux | mattchz: I would presume so, yep | 15:43.52 |
rayjj | mattchz: we have casper.ghostscript.com:/home/git-private | 15:44.33 |
mattchz | cool. | 15:44.55 |
| looks like I have access to that. | 15:45.08 |
chrisl | rayjj: tbh, it wouldn't have been that extensive if a certain other contributor hadn't stuck his oar in! Also, the PITA user being oddly cryptic about what they wanted to do | 15:45.10 |
rayjj | mattchz: that's where the sot.git resides | 15:45.16 |
mattchz | stuff in ~/private-repos â is that special? | 15:45.31 |
rayjj | chrisl: you refer to HT ? | 15:45.34 |
mattchz | i.e. is it accessible from a web interface? | 15:45.35 |
chrisl | rayjj: yes | 15:45.40 |
mvrhel_laptop | rayjj: so what is confusing about the documenation? | 15:45.41 |
Robin_Watts | mattchz: No. | 15:45.52 |
| mattchz: It's just convention. | 15:46.11 |
mattchz | ok. | 15:46.14 |
Robin_Watts | You'll note that I don't use private-repos :) | 15:46.18 |
| I should move over to be consistent. | 15:46.30 |
mattchz | private_repos ? :) | 15:46.38 |
rayjj | mvrhel_laptop: chrisl final comment on that bug says that using an ICC profile that has 1 component (Gray) with a device that has 3 components (RGB) is problematic | 15:46.39 |
mvrhel_laptop | That is a case of let the user beware certainly | 15:47.06 |
Robin_Watts | mattchz: I use 'sauce'. | 15:47.15 |
mvrhel_laptop | I suspect it could have problems rayjj | 15:47.22 |
mattchz | robin_watts: saucey | 15:48.22 |
chrisl | mvrhel_laptop: I assumed, from the wording in the document, that it was totally incompatible - i.e. would throw an error | 15:48.35 |
mvrhel_laptop | The output and result is certainly not well defined. It depends upon the content of the source, the profiles etc. | 15:49.58 |
| it would be something that I would not advise one should do | 15:50.31 |
rayjj | I haven't dug into why it works -- I just tried it and it worked, so I'm inclined to not go further (although it is puzzling) | 15:50.39 |
mvrhel_laptop | but I can't guarantee that and error would be thrown | 15:50.54 |
| s/and/an/ | 15:51.02 |
| have to take kids out to breakfast | 15:51.23 |
| bbiab | 15:51.27 |
rayjj | mvrhel_laptop: enjoy | 15:51.34 |
chrisl | mvrhel_laptop: actually, I wonder if a "proper" solution would be to set a grayscale device like profile, and leave the RGB device profile in place..... | 15:53.38 |
| rayjj: ^^ | 15:53.45 |
mattchz | robin_watts/paul_gardiner/tor8: mind reviewing the latest two commits on my master please? | 16:07.45 |
| and the single commit in my private repo âmupdf-privateâ | 16:08.01 |
| basically: we now have a script to do the TestFlight builds. | 16:08.26 |
| This script and Crashlytics itself are checked into the private repo. | 16:08.39 |
| The next step is to add some additional logic to: | 16:09.03 |
| (a) uplaod automatically to TestFlight (we already a script to do this) | 16:09.19 |
| (b) add an option to generate for App Store distribution instead | 16:09.33 |
| (i.e. use a different code signing identity). | 16:09.39 |
| This does mean that appstore/testflight builds will be done from the command line instead of the GUI, but after discussion with jogux we decided this was the easiest way of making the Crashlytics stuff conditional and in a private repo. | 16:10.49 |
| Itâs probably a good thing anyway tbh. | 16:10.59 |
| itâs all based on magic scripts by Jogux :) | 16:11.36 |
jogux | uhoh :) | 16:11.44 |
mattchz | well, I assume you wrote it ;) | 16:11.50 |
jogux | hopes you have the version that uses xcode to generate the ipa instead of manually zipping stuff :) | 16:12.08 |
mattchz | Iâve not done the IPA bit yet, but I will. At the moment it just creates an archive. | 16:12.33 |
| thought it would be easier to review as a separate commit. | 16:12.43 |
jogux | ah right. cool. | 16:12.49 |
| there's an xcodebuild command or something that'll spit out an ipa. | 16:13.00 |
mattchz | was quite fiddly to get the options all passed in. But I think Iâve done it in such a way that if we want to add additional options in the open source project, they shouldnât get trampled on. | 16:13.22 |
| the only thing that worries me slightly is whether or not theyâll be an issue with Crashlytics updating itself, now itâs not in the project folder. | 16:14.46 |
| I guess weâll see. | 16:14.48 |
jogux | I think it copes. I've moved it around before. | 16:15.19 |
mattchz | Is it the ârunâ thing that does the update? | 16:15.34 |
jogux | nods | 16:15.40 |
mattchz | I guess it would be nice to detect that itâs changed after the build script, and ask the user to commit the new version. | 16:15.55 |
jogux | as far as I know anyway. It seems to be triggered by doing a build, anyway. | 16:15.58 |
mattchz | nod | 16:16.16 |
| jogux: I guess you may want to review as well, if youâre bored ;) | 16:16.50 |
jogux | what's the link again? | 16:17.08 |
mattchz | http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commit;h=e6e38d4b92ed797f708b54594de02de9a7cff030 | 16:18.08 |
| oh, and the parent commit of that. | 16:18.20 |
| thereâs also: ghostscript.com:/home/matt/private-repos/mupdf-private.git | 16:19.14 |
| but I can show you that on my machine if itâs easier ;) | 16:19.22 |
Robin_Watts | mattchz: Just looking for those reviews... | 16:19.45 |
mattchz | thanks | 16:19.51 |
Robin_Watts | They are on your public repo, right? | 16:20.01 |
mattchz | robin_watts: last two commits on my public repo, yes. And the only commit in the new private repo: | 16:20.32 |
kens | chrisl I feel sure it should be possible to make a profile which creates R=G=B RGB output. But frankly its time to stop talking on that bug, I agree.... | 16:20.41 |
mattchz | git clone ghostscript.com:/home/matt/private-repos/mupdf-private.git | 16:20.43 |
| (Iâll create a golden version of that once itâs been reviewed) | 16:21.02 |
Robin_Watts | ok, the two ios ones look plausible enough. | 16:21.12 |
| but it would be better if someone with any ios-clue looked at them. | 16:21.25 |
mattchz | yeah. I think Joguâs reviewing it too. | 16:21.34 |
chrisl | kens: Oh, yes, my last comment about using a device link profile was purely thinking out loud (testing the limits of my vague understanding!) - I wasn't suggesting we do it for the user | 16:21.50 |
jogux | mattchz: is the NSLog deliberate? | 16:22.34 |
kens | chrisl I suspect that a combination of Ray's 'pageneutral' changes, and a redefinition of setpagedevice to catch the ProcessColorModel would work for them | 16:22.55 |
mattchz | Yes; just to make it obvious that the code has worked | 16:23.01 |
| although perhaps that shouldnât be committed. I didnât think it was too harmful though. | 16:23.14 |
chrisl | kens: the worst thing is, despite all the asking, it's still not even slightly clear what they're trying to do! If the just want to know if the page has color, then psdcmyk + pageneutral will give them what they want, I would think | 16:24.07 |
Robin_Watts | mattchz: I'm not sure about this private stuff. | 16:25.08 |
| how does it work? | 16:25.11 |
mattchz | simples. | 16:25.19 |
Robin_Watts | Do you have to check out both repos and copy one into the other ? | 16:25.19 |
mattchz | you check it out, at the same level as the public stuff. | 16:25.28 |
| then just run the shell script to do a build.. Thatâs it. | 16:25.38 |
Robin_Watts | 'check it out' ? You mean clone it? | 16:25.45 |
mattchz | erm, yeah. | 16:25.49 |
kens | chrisl I 'suspect' they want to know if the pages will print in gray on a printer. Either because they are specified in gray or because something has set device-specific commands to do so. | 16:25.53 |
Robin_Watts | How can you have 2 different repos in the same dir? | 16:26.02 |
mattchz | sorry, I meant the parent directory is the same. | 16:26.16 |
| so checkout to : | 16:26.21 |
rayjj | kens: chrisl: As I read the bug report, they don't want to just know if the page is neutral, but want to force color data to be output as gray. Totally different to GrayDetection | 16:26.22 |
mattchz | git/mupdf | 16:26.23 |
| and git/mupdf-private | 16:26.26 |
Robin_Watts | Oh, right. | 16:26.30 |
chrisl | rayjj: in that case, just using pnggray would work for them | 16:26.48 |
kens | chrisl but their insistence that 'this is a bug' p*ssed me off enough to stop being interested. | 16:26.50 |
Robin_Watts | Would it not have been possible to have the private one live within mupdf/private ? | 16:26.55 |
mattchz | users of the public repo wonât notice any difference. | 16:26.57 |
| robin_watts:how would I achieve that? I guess I could use a git submole | 16:27.19 |
| submodule. | 16:27.22 |
Robin_Watts | That way we keep the 'just copy the repos by copying a single top dir and rename it as you will' property. | 16:27.23 |
chrisl | kens: like I said, I would have left it if our "friend" hadn't gotten involved | 16:27.24 |
kens | rayjj My reading is that some jobs have colour data, but print in gray on the printer becaus ProcessCoknow in advance.tehy want tolorModel is set, an | 16:27.29 |
| chrisl me too | 16:27.35 |
Robin_Watts | mattchz: Doesn't need to be a submodule. | 16:27.43 |
mattchz | robin_watts: you mean check them both into a single repo? | 16:27.46 |
Robin_Watts | No. | 16:27.51 |
rayjj | kens: I understand and agree, but as it isn't really even an enhancement, but just needing info on *how* to use existing gs, I went ahead and commented | 16:27.59 |
Robin_Watts | You create a 'private' dir in mupdf. | 16:28.01 |
| You add the private dir to mupdf/.gitignore | 16:28.15 |
jogux | mattchz: I think the -configuration to xcodebuild isn't necessary if the scheme is setup properly. It's worth making sure the scheme(s) are set to shared too [and hence checked into git], so that people realise if they've changed them. | 16:28.26 |
Robin_Watts | You go into the private git and do git init | 16:28.34 |
kens | yeah, *if* that's what they want, then it should besible to do relatively easily. po | 16:28.37 |
mattchz | jogux> oh, okay, ta. | 16:28.46 |
Robin_Watts | You go into the private *dir* and do git init | 16:28.48 |
mattchz | ok | 16:28.55 |
Robin_Watts | That should give you a git repo within a git repo. both completely independent. | 16:29.11 |
rayjj | kens: well, at least they are quiet (so far) | 16:29.13 |
kens | :-) | 16:29.19 |
jogux | iirc you should add the child to the .gitignore for the parent too. | 16:29.31 |
kens | The inkcov one amused me | 16:29.36 |
mattchz | I can move my existing repo to that location. | 16:29.37 |
| and change the paths to suit. | 16:29.43 |
Robin_Watts | mattchz: Right, that would do it. | 16:29.45 |
chrisl | kens: at least he was polite! | 16:29.53 |
mattchz | Iâm not convinced itâs any better though, personally. | 16:30.10 |
kens | chrisl, absolutely! | 16:30.11 |
rayjj | kens: chrisl: I didn't realize that we have two ink coverage devices ! | 16:30.16 |
Robin_Watts | mattchz: Suppose I want to have 2 copies of mupdf.git on my machine. | 16:30.30 |
| At the moment I can just copy mupdf.git to mupdf2.git and I'm sorted. | 16:30.44 |
kens | One was added after the other, because the first didn't do quite what smeone wanted, so they modified it and submitted it | 16:30.45 |
chrisl | rayjj: No, if I'd reviewed the second one, I'd have insisted on a more distinct name! | 16:30.59 |
kens | is somewhat surprised to have network access :-) | 16:31.09 |
chrisl | kens: I did wonder - bored already?? | 16:31.38 |
rayjj | kens: oh, that's right. You're supposed to be on holiday ? | 16:32.13 |
kens | chrisl been riding 3 hours today, including 2 hours over cross-country jumps. Really quite tired now...... | 16:32.14 |
mattchz | robin_watts: ok, I sort of see. it means you donât have to copy the private one. | 16:32.15 |
kens | will admit that the jumping was huge amounts of fun, melanie and I thoroughly enjoyed ourselves | 16:32.58 |
Robin_Watts | yeah. | 16:33.12 |
mattchz | Is it possible to add it as an optional submodule do you think? | 16:33.13 |
| Iâve hardly used submodules. | 16:33.34 |
| iâm also tempted to call it âmupdf-privateâ rather than âprivateâ | 16:34.08 |
Robin_Watts | I think using a submodule would be bad, as people will git clone the original, then do: git submodule update --init and it'll die with an error. | 16:34.09 |
mattchz | yeah - was wondering if there could be optional ones. | 16:34.20 |
Robin_Watts | I am not aware of such. | 16:34.27 |
| yes, mupdf-private would be better as a name of a repo. | 16:34.45 |
mattchz | generally, I think itâs less confusing if repos are named with the same name as their .git on the server. | 16:34.47 |
Robin_Watts | yes. | 16:34.51 |
mattchz | one downside to this whole scheme is that weâll need to tag both repos. | 16:35.16 |
Robin_Watts | Hmm. submodules take care of that... | 16:35.31 |
mattchz | and to remember to update, etc. | 16:35.48 |
| hmm. I guess mupdf could be a submodule of mupdf-private. | 16:36.10 |
Robin_Watts | tor8: ping | 16:36.10 |
| mattchz: Ooh. That might work well! | 16:36.23 |
| Yes, that's a really nice idea. | 16:36.41 |
| We should get tor8 to weigh in on this. | 16:37.00 |
mattchz | lots of articles on the web like: âWhy your company shouldnât use Git submodules" | 16:37.12 |
| hehe | 16:37.14 |
| Weâd still need to tag the public repo though, so external users can check out a particular release. | 16:37.48 |
Robin_Watts | mattchz: Yeah. | 16:38.05 |
| Attempting to use fine grained submodules is painful I think. | 16:38.29 |
| but for what we want (periodic imports of third party libs) it works well. | 16:38.47 |
mattchz | http://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/ | 16:39.17 |
| I donât think those issues will affect us, if weâre careful. | 16:39.40 |
jogux | I presume submodules can have submodules? | 16:40.14 |
mattchz | I hope so :) | 16:41.28 |
kens | chrisl in /home/ken/pictures on casper, 3 photos. Numerically the first is me over one of the smaller jumps (near the beginning), second is Melanie over the same jump. Third is us galloping up a field, I'm in the centre, Melanie is behind me. | 16:41.49 |
Robin_Watts | Prof Google says yes. | 16:41.52 |
kens | OOps, copied wrong picture | 16:43.38 |
chrisl | kens: gotta go - I'll look at the photos later...... | 16:46.08 |
mvrhel_laptop | back | 16:48.33 |
jogux | presuamably git submodule update only applies to whichever level you're currently in then | 16:49.09 |
Robin_Watts | --recursive is the magic flag for that, I think. | 16:49.31 |
jogux | neat | 16:49.37 |
jogux | has no strong feeling that either approach is better, both 'work' so long as the release process wiki is updated and people actually follow it :-) | 16:51.06 |
mattchz | bn | 16:51.58 |
| oops | 16:52.00 |
| new commit to make xcode schemes shared: http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commit;h=a2b7169dfa61e0c7c3ed268e8da56e0e80767a32 | 16:52.07 |
Robin_Watts | I am intrigued that kens felt the need to tell us which one of the first two pictures was him and which was melanie :) | 16:52.32 |
kens | Well I just meant it wasn't some random other rider | 16:53.03 |
| Or Stella.... | 16:53.11 |
| (Stella isn't doing jumping, just us lunatics) | 16:53.34 |
mvrhel_laptop | this is interesting | 16:54.48 |
| http://spectrum.ieee.org/static/interactive-the-top-programming-languages | 16:54.50 |
kens | The reason there are any pictures is because Stella was on the ground with a camera, but obviy she couldn't follow us for 2 hours on foot. | 16:54.52 |
| mvrhel_laptop : Wot no PostScript ? | 16:55.46 |
mvrhel_laptop | :) | 16:56.00 |
kens | I presume CofeeScript is something related to Javascript | 16:56.35 |
mvrhel_laptop | who knows | 16:56.58 |
kens | is pleased to see C right up there though | 16:57.31 |
jogux | I can't believe C is the second most popular language for Mobile. | 16:58.23 |
| cz> looks good. | 16:58.51 |
kens | Ah you can click the for a description | 16:59.02 |
| coffescript is an alternative to javascript, supposed to be easier to use | 16:59.26 |
mattchz | robin_watts/jogux: Iâve added a suggestion to clean your tree: http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commit;h=803470e161539f9013f854188e57505f4878e891 | 17:04.54 |
kens | mvrhel_laptop : you might have some insight into this: | 17:07.25 |
| http://stackoverflow.com/questions/24679737/colorizing-and-blending-separations-for-printing-pdfs-in-ghostscript | 17:07.25 |
mattchz | jogux> I think I remember why I added -configuration Release for other projects. | 17:07.41 |
| if you donât, then the clean action only cleans the release stuff. | 17:07.51 |
| s/release/debug/ | 17:07.54 |
| so, i think itâs potentially harmful /not/ to have the release flag. | 17:08.45 |
mvrhel_laptop | kens: that is a tricky issue. | 17:09.42 |
jogux | mattchz: ah right. fair enough. | 17:10.49 |
mattchz | jogux/robin_watts: happy for me to commit the non-private changes then? | 17:11.07 |
mvrhel_laptop | kens, so if he has an orange spot how does he think he is going to "color" the separation correctly | 17:11.16 |
| it really is not clear to me what he is trying to do | 17:11.33 |
jogux | matt: think so | 17:11.50 |
Robin_Watts | mattchz: Go for it. | 17:13.02 |
mattchz | thanks. | 17:13.08 |
| done. | 17:13.39 |
| tor8/robin_watts/paulgardiner: please remember to clean your trees to remove the per-user Xcode schemes. | 17:14.11 |
| if you donât, Iâm not sure what badness will happen :) | 17:14.36 |
jogux | mattchz : I think only Paul actually has a mac :-) | 17:28.03 |
mattchz | robin has one :) | 17:28.18 |
jogux | he has some evil vmware thing he doesn't usually admit to having :) | 17:28.30 |
Robin_Watts | but I don't admit to it. | 17:28.36 |
mattchz | no, he has a mac :) | 17:28.36 |
jogux | oh right ;-) | 17:28.43 |
mattchz | or did | 17:28.51 |
paulgardiner | Oh. Thanks for heads up | 17:29.19 |
mattchz | ok, the submodule thing (with mupdf-private as the parent seems to work). | 17:31.55 |
| itâs all a bit magic though, and concerns I have: | 17:32.09 |
| git submodule update ârecursive, doesnât seem to remove any local changes from the submodules. | 17:32.27 |
Robin_Watts | it shouldn't do. | 17:32.47 |
| git diff should show the submodule as being 'dirty' | 17:33.07 |
mattchz | If I make changes in the submodule, can I then commit and push those to the original repo? | 17:33.14 |
| robin_watts: it does. | 17:33.22 |
Robin_Watts | mattchz: The procedure is to commit the changes to the submodule. | 17:33.28 |
| Then you do a commit in the parent that changes the SHA that the submodule points to. | 17:33.45 |
mattchz | (although the submodule is a detached HEAD state) | 17:33.49 |
| or maybe not. I read that it was, but it appears to be in origin/master on my machine. | 17:34.26 |
jogux | so the downside of the this submodule thing is that releases would really be tagged only in the private repo. | 17:34.33 |
mattchz | jogux: thatâs my other concern. | 17:34.46 |
Robin_Watts | No. | 17:34.57 |
jogux | we could tag the submodule too, but it wouldn't be canonical. | 17:35.04 |
Robin_Watts | You tag the release in the normal mupdf repo. | 17:35.06 |
| Then you checkout to that (in the submodule) | 17:35.21 |
| Then you move into the private repo and "git add mupdf" | 17:35.51 |
| Then git commit that. | 17:36.03 |
| Then tag that. | 17:36.07 |
mattchz | right. | 17:36.15 |
Robin_Watts | So the private repo has a tag that specifies the value of the public repo to be the tag. | 17:36.39 |
mattchz | in that case, what would be nice then is a script that given a tag as an argument (which has already been tagged in the public repo), we automate all of the above. | 17:37.09 |
Robin_Watts | It is a quirk of the way that submodules work that submodules are always considered to be checked out to an SHA, rather than to a tag/branch. | 17:37.16 |
| Hence submodules often appear to be in detached head state even when they are actually on the same SHA as master or something. | 17:38.08 |
mattchz | so, we should probably never actually use the submodule for development, or make changes there - always commit to golden first, then update the submodule? | 17:38.30 |
| and build from a clean tree. | 17:39.15 |
Robin_Watts | All changes in submodules must be committed there first, yes. | 17:39.46 |
| and build with clean submodules, for releases, yes. | 17:40.03 |
mattchz | I mean, commited in a second clone of the repo and pushed. | 17:40.09 |
Robin_Watts | mattchz: No, you can cd into the submodule and git checkout to anything you want. | 17:40.43 |
jogux | offs, night all. I'm probably finishing up lunchtime-ish tomorrow btw. | 17:41.08 |
Robin_Watts | it's just that when you do: git submodule update, and that adjusts all the submodules, they will be left on an SHA rather than on a named branch/tag | 17:41.09 |
| jogux: You holidaying? | 17:41.20 |
mattchz | robin_watts: presumably you need to push to golden though before you commit any changes to mupdf-private. | 17:41.32 |
jogux | just got visitors :) | 17:41.35 |
mattchz | because otherwise your SHA1 wonât exist on the server. | 17:41.43 |
Robin_Watts | oh, right. I forgot it was friday! :) | 17:41.50 |
mattchz | itâs thursday | 17:41.56 |
Robin_Watts | I forgot that tomorrow was friday. | 17:42.07 |
mattchz | :) | 17:42.19 |
Robin_Watts | Woo Hoo! I have jbig2 images. | 17:43.25 |
| inverted, but... | 17:43.29 |
mattchz | nice one :) | 17:47.24 |
| Right, home time. | 17:49.02 |
| nn all | 17:49.05 |
| Forward 1 day (to 2014/07/11)>>> | |