In June 2014 I published a blog post about OS X 10.10 Yosemite DP1 kernel(cache) like how you can change the default/preferred compression from LZVN to LZSS and published a disassembled copy of the lzvn_decode routine. I also published a link to the opcode tables that I made available via dropbox. Then I said:
Anyone willing to have a go with it? Yes. You will need to convert it and figure out how to get it going, but we are hackers. Right?
Then someone with the nickname ‘coercion’ said: That looks pretty straightforward. I’ll give it a shot this evening if no one else has gotten around to it.
My thoughts exactly. Pretty straightforward, but he somehow never delivered. Which I’m glad he didn’t, because after this a well known company contacted me and said:
Pike. We know that you are a busy man, but what about making a quick extra 5K for your home? We are open to suggestions. Contact me…
Right. I could not say NO so that was basically when I stepped in, but I had to sign a NDA agreement, and thus you, the community, won’t ever get to see it. In other words; I had to wait for someone else to publish something that I could use/refer to, and Andy Vandijck was that person. That is, almost, because he did not publish source code that could be used – lzvn_decode was still the same assembler code.
Some weeks later a person using the nick name ‘MinusZwei’ published a flat-conversion of the disassembled code that I published here, but this would have been something that I could use. Unfortenately not, because he slammed a copyright on it. Even on main.c written and published by Andy Vancijcke. But that wasn’t it. Nope. He also went on putting a claim of ownership (copyright) on something that clearly doesn’t belong to him, but Apple’s copyright portfolio. Next to that; there is no word of thanks for my work. I guess thanks but no thanks. Hmm. I wonder when people will start to be nice.
Edit: I should have asked ‘MinusZwei’ per PM why he did it, but it turns out that there was no wrong doing. The copyright string was generated by Xcode. He just forgot to remove it. Not only that. Andy was totally fine with it. Cased closed.
Anyway. I still want to help out where I can, but with the remark that I will not claim overship (copyright) of something that is not mine. That is why you will find this on top on the file that I am about to publish:
* Copyright (c) 2014 Apple Computer, Inc. All rights reserved.
* Portions Copyright (c) 2003 Apple Computer, Inc. All Rights
* Reserved. This file contains Original Code and/or Modifications of
* Original Code as defined in and that are subject to the Apple Public
* Source License Version 2.0 (the "License"). You may not use this file
* except in compliance with the License. Please obtain a copy of the
* License at http://www.apple.com/publicsource and read it before using
* this file.
* The Original Code and all software distributed under the License are
* distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
* License for the specific language governing rights and limitations
* under the License.
* The lzvn_decode function was first located and disassembled by Pike R.
* Alpha and later converted to flat C code by someone using the handle
* 'MinusZwei' over at insanelymac.com. This after Andy Vandijcke published
* a working version at the for mentioned website.
* Thanks to Andy Vandijcke and 'MinusZwei' for their work, but I (Pike
* R. Alpha) will not claim ownership of this work, other than the work
* that I have done, for educational purpose, to improve the readability
* so that it is understandable for everyone.
So Pike. Where is the source code/file you talked about? Ok. Hold on. I am writing this during my tea break, and we want to have something that works. Right? Also. The minute you see what I did, you definitely understand that this – my work – is not only ‘quite different’ but it will also show you why I said this.
I am currently waiting for approval, but we should be good to go some time later today.
Nope. They want me to make three more changes and then it’s fine, but I am getting some sleep first of course 😉
And nope again! One of their software engineers discovered a huge flaw in the software that Andy and ‘MinusZwei’ released and they don’t want me to publish ‘my’ source code until they fixed their code. Note to Andy: I know that you asked for my help, but now you know that I am in a difficult spot and thus this is also why I didn’t reply to your request. I hope that you can understand this and I am sure that you guys will figure out what is missing. Without my help of course 😉
Edit-4 I made some changes and now I can publish the polished source code. Finally. I must admit. It sucks to have to wait just because someone says that you cannot do that what needs to be done. Deliver!