IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2012/09/04)2012/09/05 
alexcher marcosw: What's mu that you mentioned in the bug about unsupported PDF encryption?03:01.18 
marcosw we used to ship a product called mupdf but then someone decided that since it also read xps files mupdf wasn't a good name so now it's called mu03:48.39 
mvrhel really?03:48.54 
  but everyone pronounces it as moo03:49.30 
marcosw I assume so, mupdfdraw -> mudraw, so clearly mupdf -> mu03:49.33 
mvrhel interesting. looking at dictionary.com they give a myoo and moo pronunciation. also I see that mu is slang for marijuana04:13.06 
  never heard that one before04:13.14 
kens Robin_Watts : ping08:48.34 
tim__ hi any ghostscript developer here to ask some questiones?08:56.14 
kens Yes, several08:56.21 
tim__ ok08:56.26 
  first i want to know if ghostscript is able to convert PDF to XPS08:56.51 
kens Currently, no, there is no xpswrite device yet, its in development08:57.12 
  Well, there is a sort of working construct, but I wouldn't trust it08:57.26 
tim__ ok i found some solutions that use adobe reader and print the pdf file to xps but i dont want a save file dialog to be opened08:58.11 
  anyone know other soltuions for that?08:58.33 
  the printing process should be proceeded without any user interaction08:59.07 
kens http://www.verydoc.com/pdf2vector/pdf-to-xps.html09:00.39 
tim__ yes found that too but this is very expensive09:01.11 
  but thanks for your help guys09:01.19 
Robin_Watts kens: pong09:11.45 
kens morning Robin_Watts09:11.52 
  You sent me a file which was one page and no 'web optimised'09:12.04 
  I think I know how to fix it, can you tell me where to get another copy ?09:12.18 
Robin_Watts let me look09:13.28 
  hehe. All my attempts to generate a 1 page file are coming out as linearised now :/09:16.02 
kens Interesting....09:16.10 
  I do now know why my files weren't, and I have fixed it.09:16.27 
Robin_Watts What was it?09:17.15 
kens Oh, you'll like htis one....09:17.27 
  Any file less than 4k is not recognised as linear09:17.42 
  Add white space to make my file 4k and it works09:17.58 
Robin_Watts Ah...09:18.14 
  That makes sense, as my files here are > 4K.09:18.23 
kens I wondered that09:18.30 
Robin_Watts jeez.09:18.32 
kens Yes, exactly, optimise for web viewing by making the file bigger (ROFL)09:18.48 
  2 days fo laborious scraping at PDF files by hand to find that little gem09:19.19 
  As far as I can see it is not documented anywhere either09:19.33 
  I'm about to go out, when I get back I'll work on my hint tables some more. At least the damn files show up as linearised now.09:20.49 
paulgardiner Robin_Watts, tor8: ping10:07.28 
tor8 paulgardiner: hey10:07.41 
paulgardiner I have an api for mupdf to report events to the app. I was at first trying to avoid using a callbacks because I don't think most apps will be able to respond to events immediately and will need to queue and poll later.10:10.16 
  But then I realised that mupdf would have to queue and it's difficult to know when to free queued items if the app isn't interested in them.10:10.57 
Robin_Watts paulgardiner: Urm... I was imagining any queueing would be done in the app.10:11.25 
  What events are we talking about here?10:11.33 
paulgardiner So I've ended up with a callback but some extra features that should make it very easy for the app to either ignore or queue events10:11.34 
Robin_Watts "The Javascript has requested a print dialogue"10:11.48 
paulgardiner events: submit openurl maildoc print10:12.02 
Robin_Watts OK. So those are all of the form: "The javascript has requested that you do X"10:12.33 
paulgardiner can come from javascript or a pdf action or someone clicking a link (I think we should swap link handling to work via this)10:12.40 
  Robin_Watts: Yesish10:12.53 
Robin_Watts So no response is required to any of them?10:13.11 
paulgardiner something, possibly javascript, has invoked something.10:13.15 
Robin_Watts So why might we need to queue ?10:13.30 
paulgardiner The api is on paulg/master10:13.30 
  Because within the callback you might have locks taken and not want to drop them, you can't reenter some code, you may be in a v8 call.10:14.21 
  You don't want to stall the whole app10:14.41 
  I mean v8 may be in the backtrace of the callback10:15.22 
Robin_Watts Right. I'd imagined that the callback from lib to app would be a purely informational thing.10:15.42 
paulgardiner Yes10:15.52 
Robin_Watts The app would record that it had had such a callback and then immediately return to the lib.10:16.04 
paulgardiner Yes10:16.11 
Robin_Watts So the app would ALWAYS defer actually doing any work.10:16.23 
  but whether it does so or not is down to the app, and none of the libs concern.10:16.43 
tor8 Robin_Watts: do you trust customers like Raed to be able to remember all that?10:16.48 
paulgardiner Possibly always, but you may be able to do it immediately in some cases10:16.50 
  Robin_Watts: yes10:17.02 
Robin_Watts tor8: I trust anyone capable of writing an app, yes.10:17.23 
  because if they don't, it'll fall into a heap pretty quickly.10:17.37 
tor8 so basically all apps will have to implement their own js event/request queue10:17.59 
paulgardiner The difficulty with returning immediately is there may be a lot of data you need to store and own - different for each event, so I've tried to make that very easy10:17.59 
Robin_Watts All it needs to make it (more) idiot proof is a note saying; do not call back into mupdf from the callback.10:18.02 
paulgardiner I've given the event objects "keep" and "drop" methods, plus a next property so the app can easily queue them.10:19.13 
Robin_Watts so they are ref counted?10:20.01 
paulgardiner Yep10:20.09 
Robin_Watts and you've hidden the refcount out of the structure ?10:20.25 
paulgardiner yep10:20.32 
Robin_Watts So when Raed copies the struct and then 'keeps' it...10:20.59 
paulgardiner The caller sees only "type" and "next". For eash type of event there is a function to get at the rest of the data10:21.05 
  No need to copy. Just keep10:21.21 
  May be worth looking at paulg/master10:21.52 
Robin_Watts I am.10:22.00 
  I know this is a strange reversal for me to be the one arguing for simplicity, but I think all this should be done by the app.10:22.30 
paulgardiner I quite like how it as turned out, but I can imagine it might not be to everyone's tastes10:22.40 
Robin_Watts I mean, how much data is there ever actually to store?10:22.57 
  If we are going to expose a queue like this, then why not really expose it as a queue ?10:23.36 
tor8 if it were me I'd have fz_next_doc_event(idoc) that the app would poll until its empty10:23.44 
paulgardiner Robin_Watts: Little but is difficult for the app to know what to store and how to store it. The app doesn't know that some things are pointers to owned info and others need freeing10:23.49 
Robin_Watts the callback could mean "There is a new element in the queue"10:24.00 
paulgardiner It's not a queue. They are independent events that are easily queued10:24.13 
tor8 and if the app doesn't care about the event, it'd just drop it10:24.14 
Robin_Watts and we could have a "give me the next element in the queue".10:24.17 
  what tor8 said.10:24.29 
paulgardiner Robin_Watts: if mupdf queues the events, it is difficult for mupdf to know when to free things, especially if the app is not interested in events10:25.10 
tor8 paulgardiner: while (evt = fz_next_doc_event(idoc) != NULL) { if (evt->type == MY_CUP_OF_TEA) do_stuff(); fz_drop_doc_event(idoc); }10:26.17 
Robin_Watts Or we have the callback of the form: int callback(event); where the callback can return 0 for 'ignore', 1 for 'dealt with' and 2 for 'queue for later'.10:26.30 
tor8 Robin_Watts: no. that's too complicated.10:26.49 
paulgardiner tor8: Yeah, that was a version I went through. Could do that way. I prefered my later version because it still works if the app doesn't bother to poll10:26.53 
tor8 paulgardiner: we could check that the queue is empty every loop (at some convenient entry point) and fz_warn10:27.33 
  or just have a max limit and warn if it's getting long10:27.40 
Robin_Watts tor8: So are you suggesting that we do away with callback entirely, and just have a queue ?10:27.44 
tor8 Robin_Watts: correct.10:27.57 
paulgardiner I like the polled queue, except that we force the app to poll even if it isn't interested in any events. That was my only reason for the "seemingly" more complicated api10:28.10 
tor8 paulgardiner: we could give fz_interactive a flag whether an app is interested in events or not10:28.37 
paulgardiner Polled queue is where I started. And I do like it.10:28.39 
  tor8: Yep. That's a possibility.10:28.53 
Robin_Watts Polled queue is certainly simpler conceptually.10:28.55 
paulgardiner Maybe that is better10:28.57 
tor8 although I'd imagine if an fz_interactive is created, it will be wanting to poll10:29.14 
paulgardiner I don't think what I have is complicated. It's just unusual. But that alone may be a reason not to use it.10:29.38 
tor8 paulgardiner: what's on paulg/master now requires a bunch of boiler plate code for hooking up callbacks etc, for something that is otherwise done in one line10:30.39 
Robin_Watts runs. back soon.10:30.44 
paulgardiner I also liked the idea of being able to respond immediately without queuing in some cercumstances: i.e., in windows, it is common to call the message poll queue recursively10:30.47 
tor8 paulgardiner: I'd imagine the app at the top level calling some js/forms functions when it gets a system mouse/keyboard event, and directly after that it'll poll for doc events before going back to wait for another system event10:31.28 
  possibly by juggling things over worker threads10:31.48 
  the worry as you said is what to do if the caller forgets to empty the queue10:32.42 
paulgardiner tor8: yes true. Ok, I'm pretty convinced. I did think of having the "i'm interested in events" flag, but didn't like it for some reason (which I'm now not sure of)10:32.52 
  tor8: Yep. Completely convinced. I was trying to avoid mupdf having an internal queue, but I think it's better for it to have one.10:33.56 
  I think we were all trying to avoid that to start with, but it's not worth the extra complication of the api and the boilerplate10:34.51 
  I'll alter the api, and stick it up again.10:35.18 
  tor8, Robin_Watts: Ok. Pushed a new version.10:52.22 
tor8 paulgardiner: looks agreeable :)11:16.43 
paulgardiner Eek! That's going to be awkward: the app.alert method displays an alert dialog and returns an indication of which button is pressed! Not sure how that's going to be possible to implement.11:17.11 
  So contrary to what I stated earlier, not all these events can be thought of an information only. Some need to return a result based on the app's response to the event.11:18.47 
tor8 paulgardiner: eek indeed :(11:19.38 
paulgardiner I think I know how to do that in windows... although I'd need to be handling the events on a callback to do it.11:20.25 
  And it would still have a feeling of danger to it: calling back into windows from v8!11:21.24 
  Recursive message poll loops are common in windows apps, or at least used to be before windows had threads.11:22.15 
  The only other way I can imagine its being possible, is if I ran javascrip actions on a separate thread.11:23.54 
  In android the dialog would be possible to display in the main thread, while stalling mupdf, because in the android app, all mupdf execution is done on a separate thread.11:26.25 
tor8 paulgardiner: are there any other exceptions?11:26.33 
paulgardiner app.launchUrl doesn't return a value but is supposed to throw a javascript exception if it fails.11:29.08 
  Also, I'm only currently looking at DOM usage from our test files. Not sure if I can predict if there would be many other cases where mupdf needs a result from the app11:30.22 
  There's app.execDialog.11:30.58 
  field.buttonImportIcon needs to provoke an "open file" dialog to get the path to an image file.11:31.58 
  So it'll need the returned result.11:32.09 
  Ah! Idea" Possibly horrible. What about if I throw an exception in the javascript to kill it off, and then rerun the action11:33.19 
  No, that could do repeated state updates in the javascript.11:33.39 
  Sorry, I should have realised this before.11:35.17 
tor8 paulgardiner: I take it we can't save a suspend state and resume later? like a coroutine kind of thing.11:46.50 
  then I think we'll just have to do it the callback (and no queueing allowed) way... ugh.11:47.27 
paulgardiner Can do coroutines with setjmp and longjmp but you have to be able to create new stacks and it's very jucky.11:48.33 
  Unless v8 has support for it.11:48.53 
  But then we don't want to be married to v811:49.04 
  The api I presented before allowed for dealing with some events immediately and some queued.11:49.36 
  ... although if some have to be dealt with immediately, perhaps it makes sense to try to do all that way... although we can't stall while we print e.g.11:50.37 
Robin_Watts ass11:51.44 
paulgardiner Quite11:51.51 
Robin_Watts And double ass. My cluster test of the pdfwrite stuff is failing, and I can't reproduce it :(11:52.25 
paulgardiner So perhaps I should go back to a callback and forget the queuing completely for now?11:55.29 
Robin_Watts That's the simplest route, and simplest wins, generally.11:58.43 
  (seems odd for it to be me advocating the less complex route...)11:59.07 
paulgardiner :-)11:59.40 
tor8 Robin_Watts: are you ill? ;)12:24.53 
Robin_Watts not ill, just annoyed.12:30.07 
  Could I trouble one of you to pull my pdfwrite mods from my repo and do a test build/run please?12:30.48 
  2000ish files fail under the cluster, but even using the clusters binary on peeves I can't make them fail.12:31.27 
paulgardiner Robin_Watts, tor8: another version pushed. I've also added the app.alert event just to show how values are returned.12:39.39 
Robin_Watts sebras: disagreements in #gstreamer ?12:45.05 
sebras Robin_Watts: yes indeed.12:45.19 
  Robin_Watts: they blew me off publicly. so ARGH! on them. :-P12:45.59 
  unfortunately my temper made me write /quit instead of /part... :-)12:47.04 
Robin_Watts I guessed. I make similar mistaked.12:47.41 
  mistakes. geez.12:47.47 
Robin_Watts wonders what he has done to make the gods of the cluster hate him so.12:48.25 
sebras Robin_Watts: it's more fun to work on mupdf. you guys are friendlier and the process is faster and slimmer (except when there are copyright assignments messing things up). and the quality of the code is superior and it has less framework crap. sometimes I wonder why on earth I'm working on gstreamer.12:49.00 
Robin_Watts oh, I see the problem, I think.12:54.34 
  The cluster gets us to write to files like: this__is__the__input_file.pdf.ppm.0.blah and I spot the .pdf and assume it's a pdf write.12:55.32 
kens Robin_Watts : did you ever look at what Acrobat produces for a hint table ?14:33.59 
Robin_Watts I did.14:39.11 
kens Its terrible14:39.19 
Robin_Watts I got half way through writing my code, and then decided the spec wasn't clear.14:39.34 
kens Loads of stuff is explicitly (and incorrectly) set to 014:39.41 
Robin_Watts so I took an acrobat one to bits.14:39.42 
kens Eg (implementation note 183(:14:40.21 
  "In Acrobat, items 6 and 7 in the header section of the page offset hint table are set to 0. As a result, item 6 of the per-page entry effectively does not exist; its value is taken to be 0. That is, the sequence of bytes constituting the content stream for a page is described as if the content stream were the first object in the page, even though it is not."14:40.22 
  and 184:14:40.41 
  "Acrobat 4.0 and later versions always set item 8 equal to 0. They also set item 9 equal to the value of item 5, and set item 7 of each per-page hint table entry (Table F.4) to be the same as item 2 of the per-page entry. Acrobat ignores all of these entries when reading the file."14:40.41 
Robin_Watts Yes.14:40.49 
  I think I do the same.14:40.54 
  On the grounds that if acrobat doesn't do it, why should I bother.14:41.09 
kens TO be honest, I'm feeling that way about the whole mess14:41.27 
  Acrobat clearly ignores practically all of it anyway14:41.36 
  And since it writes it incorrectly nothing else can rely on it, so what's the poiont ?14:41.52 
Robin_Watts Indeed. I figured 'shoot for the simplest thing that keeps acrobat happy and seems correct to me'.14:42.10 
kens ROFL14:42.18 
  Just write the hints as all 0 that works.14:42.25 
Robin_Watts yeah, but that didn't seem right to me :)14:42.38 
tor8 sounds like the best solution to me! :D14:42.51 
kens Its nice and simple though :-)14:42.52 
  Well I will persever with finishing it the way I think it shoudl be14:43.21 
  Since nothing uses it nobody will ever know if its wrong.14:43.32 
  I will need to talk to marcosw about being able to run a cluster test with a much longer timeout though14:44.02 
sebras kens: I do think that poppler actually parses some of the hint stream.14:48.53 
Robin_Watts paulgardiner: That latest patch seems sane to me, btw.14:55.27 
paulgardiner Robin_Watts: Ah right. good.14:55.54 
kens sebras, but it can't rely on the contents of much of them, according to the implementation notes in the 1.7 spec. Mostly those notes tell you which bits of the hint stream Acrobat gets wrong, fills in with random data or simply ignores altogether.14:56.28 
Robin_Watts tor8: New versions of the patches from last night online (of the last 3, ignore the latest one as it's still a work in progress)14:56.29 
kens I was quite taken with implementation note 188:15:00.11 
  "In a document consisting of only one page, items 1 and 2 in the shared object hint table are not meaningful; Acrobat writes unpredictable values for these items."15:00.12 
sebras kens: oh. how nice. one wonders why they bothered to implement it at all...15:31.17 
sebras notes that this is not his most cheerful day, bear with me...15:32.40 
henrys damn it I can't believe how stupid I am - I booked friday to sunday.15:33.31 
kens henrys holiday :-)15:34.47 
  sebras, I'm wondering pretty much the same thing15:35.03 
  I suspect that the people who implemented it in Acrobat took one look at the spec and said 'what's the easiest way to make something work' and then implemented that. And tehn got it wrong....15:35.40 
Robin_Watts henrys: Can you not just drive it? :)15:40.24 
kens thinks that's actually quite a long way15:40.41 
Robin_Watts Better shorten the agenda :)15:40.47 
kens Well Monday is Mile's day15:41.02 
chrisl Is that a public holiday in th US?15:41.20 
kens So as long as we get done in good time on Sunday.....15:41.24 
chrisl :-)15:41.25 
kens thnks it probably ought to be15:41.40 
Robin_Watts Google says 19 hours.15:41.47 
kens That seems like a long way to me15:42.13 
henrys I changed it, it's not a big deal domestically15:50.17 
  I lose a few bucks but I deserve it.15:50.37 
kens easy mistake15:50.52 
  OK off to eat, goodnight all16:04.07 
Robin_Watts iPhone 5 to be launched on Sept 12th. Looks like we'll be getting out of SF just as all the journos arrive.16:05.08 
henrys Did you guys pay much more to fly on Monday?16:17.01 
  or I guess you normally fly Monday.16:17.34 
chrisl We normally fly Sunday night - it was quite an expensive ticket, but I reckon that's more down to the time of year16:18.17 
Robin_Watts henrys: The big price bump is saturday night.16:18.50 
  As long as we stay a saturday night, it's much cheaper. (so Sunday/Monday and Saturday/Sunday meetings work equally well for us).16:19.23 
henrys everytime I do the agenda I have some sort of brainstorm that usually turns out to be not such a great idea after some thought - but why are we using banding at all on hosts? I have to imagine with reasonable locality a full frame allocated as file mapped memory (mmap) would be faster and more robust than banding.17:08.21 
Robin_Watts 32bit systems have trouble mmapping anything too large.17:15.06 
  4Gig is the ultimate limit of course, but most run into problems before 2.17:15.24 
  And I think "reasonable locality" is a big killer.17:16.17 
  Imagine a page that plots a series of full frame rectangles.17:16.37 
  That's going to slave through the whole file swapping it into/out of memory as many times as there are rectangles.17:17.01 
henrys true but there are lot of pathological cases for banding also.17:17.12 
Robin_Watts swapping kills performance on multicore systems.17:17.55 
  (you can have multiple cores handling different bands nicely, but there is no way to make multiple cores accelerate full frame stuff)17:18.32 
henrys that's a good point17:18.45 
  It would be interesting to see some numbers though.17:20.00 
Robin_Watts but there is the flip side of the argument too... given that we have to support banding for embedded systems, what is gained by not allowing it to be used on hosts?17:23.24 
henrys speed and robustness is why I suggested it.17:24.29 
  and I thought PAE gets you more than 4 gigs17:25.35 
chrisl PAE still restricts you to 4gig *per process*17:26.02 
Gigs- not per process17:26.04 
  think about it, pointers are still 32 bits 17:26.26 
henrys oh okay17:26.30 
  right17:26.32 
chrisl I don't think I'd want to try to render a cairo PDF @ 1200dpi with all the buffers mmap()'ed.......17:27.23 
Robin_Watts PAE is an x86 abomination. They didn't learn from segment registers...17:28.39 
mvrhel henrys: so the fast thresholding is not enabled for all the planar devices. now I can add in the stuff to decide about prerendering when going to the clist17:29.02 
  s/is not/is now/17:29.11 
Robin_Watts mvrhel: Excellent!17:29.20 
  Did you solve the phase/level problems ?17:29.27 
mvrhel yes. the subtractive threshold was inverted17:29.38 
chrisl henrys: besides, given banding is used in the embedded area, we gain by having it "QA'ed" on the workstation builds.....17:29.41 
Robin_Watts mvrhel: That explains the level differences.17:30.01 
  What about the phase differences?17:30.09 
mvrhel and the phase. the turn on sequence was flipped17:30.31 
Robin_Watts Ah. Fab.17:30.41 
  Nice one.17:30.56 
mvrhel Gigs: I am working on your chili label now17:31.57 
Gigs- cool17:32.08 
  yeah I saw the update17:32.12 
henrys mvrhel:great okay I do notice you have a customer project (the one you visited) should that come first?17:32.39 
mvrhel henrys: yes I do need to get that finished up too17:32.59 
henrys chrisl:yes I thought of the QA too, indeed a downside.17:33.33 
Gigs- Robin_Watts: at least the people who designed ipv6 weren't in charge of CPU architecture, or we'd have 512 bit systems that no one used :P17:33.36 
mvrhel I am trying to work on all in parallel but likely I should devote more time to the color stuff for the customer17:33.46 
  henrys: ^^17:34.15 
henrys Now I'm reading about AWE I imagine that is a disaster but would allow you more than 4 gigs per process thought a windowing scheme like the old overlay hell.17:35.52 
  s/thought//17:36.09 
  okay probably a bad idea back to the agenda17:37.12 
Gigs- awe is a lot like the old dos memory17:37.13 
  extended memory over 640k etc17:37.24 
henrys Gigs- right - that's what I meant by the "old overlay hell" - technical term for it.17:38.03 
Gigs- yeah17:38.36 
Robin_Watts Such things keep paulgardiner in business emulating them on newer machines :)17:39.57 
aleray hi, I just wanted to make sure that gosthscript urw font were GPL. Could someone confirm this?17:44.09 
  I'm asking for the font antique olive in particular17:44.39 
Gigs- I don't believe they are17:46.50 
mvrhel this is an interesting comment in the code17:50.01 
  * Perform actions required at set_color time. Since PatternType 2 * patterns specify a color space, we must update the overprint * information as required by that color space. We temporarily disable * overprint_mode, as it is never applicable when using shading patterns.17:50.07 
aleray Gigs, from scribus wiki: There are some great freely licensed URW fonts from Artifex (makers of Ghostscript and GhostPCL) that are well worth grabbing. There are some good quality fonts in there, like Clarendon, URW Bookman, and Antique Olive.17:50.11 
mvrhel I think this is the source of the chili problem17:50.39 
Robin_Watts aleray: I believe, that they are aladdin licensed, not GPL, but I can't be sure.17:50.44 
henrys the truetype fonts are afpl17:50.48 
Gigs- don't tell debian17:51.02 
  :P17:51.03 
aleray Gigs, so they aren't free ?17:51.17 
Gigs- depends on your definition of free17:51.26 
Robin_Watts No. Tell debian. If it causes the dogmatic gits problems, so much the better :)17:51.27 
Gigs- also no one really cares about font licensing17:51.35 
Robin_Watts Gigs: Except the people that license fonts.17:51.47 
Gigs- yeah hehe17:51.50 
aleray Gigs, I do :)17:51.51 
Gigs- aleray: unless you are selling the fonts themselves, I doubt you will run into trouble17:52.08 
  of course anyone can sue for anything but really fonts have a lot of gray area17:52.26 
henrys wikipedia has a good page about AFPL17:52.27 
aleray henrys, ok let me check17:52.46 
Gigs- the AFPL doesn't really make sense for fonts17:53.09 
aleray Gigs, well it become problematic if I want to alter the font and redistricute it17:53.15 
Gigs- if I sell a PDF with embedded fonts, I guess I'm technically violating it17:53.24 
Robin_Watts Gigs: Well, he has to be careful. If he wants to use them for his own personal use there is probably no problem. If he wants to modify or redistribute them, or use them for commercial gain then that may be a problem.17:53.36 
Gigs- a lot of font licensing issues are like that17:53.40 
henrys Of course ghostscript is now GPL, it used to be AFPL, I've asked URW to change the license on their fonts but they like the AFPL for obvious reasons.17:56.29 
Gigs- It would be nice if copyright law were changed on fonts. At least no one seems to sue over embedding.. yet17:57.17 
Robin_Watts OK. This afternoons conundrum. Why doesn't acrobat like http://ghostscript.com/~robin/out.pdf ?17:59.43 
Gigs- it doesn't open in evince either18:00.05 
henrys chrome (foxit) likes it.18:00.16 
Robin_Watts so does gs and mupdf.18:00.24 
Gigs- evince says "failed to read the document catalog"18:00.33 
  is the xref offset weird or something18:00.47 
Robin_Watts oh, wait, I see it.18:01.02 
aleray Gigs, Robin_Watts , henrys thanks. So if I understand correctly appart the fact that I can't sell the modified version it is like GPL, right? Also I'm wondering what is considered the source code for a font?18:03.55 
Gigs- hinting and anything algorithmic18:04.36 
  font faces are not copyrightable18:05.07 
  So a raster font is not really protected very much. It's the hinting and things other than the face itself that gets copyright protection.18:05.44 
aleray Gigs, yes. I meant is a ttf file a source file?18:07.12 
Robin_Watts aleray: Yes.18:07.34 
aleray Robin_Watts, thanks18:07.39 
Gigs- I can't speculate as to how the AFPL would work for fonts if that's what you are asking... I think it's an inappropriate license to use for that :)18:07.44 
aleray But in practice this is the choice that was made for urw fonts in ghostscript... was it a deliberate choice, or just some kind of default choice since ghostscript was AFPL licensed at that time?18:09.29 
Robin_Watts OK, new version of out.pdf online. Acrobat still doesn't like it.18:09.29 
Gigs- Robin_Watts: evince renders it now18:09.44 
Robin_Watts aleray: It was the default choice. The font foundry have declined requests to relicense it to GPL since.18:10.19 
aleray Robin_Watts, thanks for those explanations18:10.51 
henrys the ghostscript type 1 fonts are GPL, the Truetype fonts which were actually constructed to implement our PCL product are AFPL18:11.03 
Gigs- http://www.tug.org/fonts/deutsch-urw.txt18:11.06 
  yeah what henrys said18:12.14 
  I just found that right as he said it18:12.22 
aleray henrys, sorry, what does PCL stand for?18:14.12 
henrys Printer command language18:14.44 
  HP thing18:14.47 
Gigs- kind of a de facto standard now18:15.18 
  very few printers are native postscript anymore, except high end ones18:15.30 
aleray henrys, ok, so logically, if I convert the type 1 fonts, I can get a GPLed version of it?18:15.35 
  I mean I can get a GPLed TTF version of it 18:15.53 
Gigs- it's going to be ugly18:16.03 
Robin_Watts aleray: Theoretically, yes.18:16.52 
aleray why that Gigs ? (i'm not expert at all on that topic)18:16.59 
Gigs- not in appearance but in terms of the TTF code produced18:17.01 
Robin_Watts If you get something as GPL then whatever you do to it you end up with something GPL.18:17.21 
Gigs- TTF is like a programming language, so it's going to be generated code which may not be very elegant18:17.43 
Robin_Watts But 1) converting Type 1 -> TTF is not a trivial process if you want to get nice output.18:18.09 
aleray I interact with font only through fontforge, so the machinary is a little bit hidden to me18:18.48 
henrys well theoretically no, not all T1 curves can be represente in TTF18:18.54 
Robin_Watts and 2) I thought (though I have no idea where I got this impression and I could easily be wrong) that the urw TT fonts were not the same families as the Type1 fonts.18:19.15 
henrys quadratic vs cubic.18:20.20 
aleray oh ok, I could go for OTF instead, would that be better?18:20.49 
henrys bbiab18:21.09 
aleray I just want to be able to use this font for a print publication made in scribus18:21.12 
Robin_Watts TTF only offers quadratics ?18:21.38 
Gigs- aleray: if you aren't distributing the font itself, it doesn't much matter what the license is18:22.19 
henrys truetype is quadratic and type 1 cubic18:22.30 
aleray Gigs, henrys, Robin_Watts thanks for these good information. I think I need to explore wether AFPL is acceptable or not in my case, and if not if t1 to OTF/TTF conversion makes sense.18:26.38 
  nice to discuss with you :)18:27.06 
mvrhel it appears that there are 2 issues going on with this chili label bug18:35.28 
  one is that with type2 patterns we were not allowing overprint and it looks like the separation color map is wrong once I fixed that issue18:59.03 
henrys mvrhel:does somebody need to look at all these differences for the fast threshold change?19:18.24 
mvrhel henrys: I stepped through a lot of them19:18.36 
  but another set of eyes can't hurt19:18.44 
henrys I'll put it on the agenda - something to talk about19:19.13 
mvrhel yes19:19.19 
  ugh. the saved imager state in the pattern object does not have the proper color map for the separation space of the pattern19:28.30 
  bbiaw19:45.22 
  aha. now I see what is going on. the overprint drawn components mask is not getting updated when we set the pattern20:54.50 
  bbiaw20:55.02 
jen_ What's the syntax to watermark a JPG file using GS?21:29.57 
mvrhel grumble grumble. this is turning into an interpreter problem23:43.16 
  alexcher are you around?23:43.23 
 Forward 1 day (to 2012/09/06)>>> 
ghostscript.com
Search: