Jump to content

Chameleon with SMBIOS patching


mackerintel
 Share

138 posts in this topic

Recommended Posts

LOL, yeah, as like your an main developer on UEFI project? And as an OSS expert you need to upset ppl by PM trying to force them to stop development?

Nice try, better luck next time.

Some of the Open Source developers are considered to be experts yes, and this is based on years of experience, which in my case goes all the way back to 1985.

 

And yes I do feel obligated when it comes to people like you, who do not want to comply with the OSS license.

 

I however never said to be the main developer of UEFI (and I even checked it) but I did work for Intel at the time yes – something has to pay the bills here so yeah, I take an occasional extra project when I have time for it, and it is something I'm interested in.

 

I simply want people to respect the license. That's all. I mean you don't want me to file an official complaint, or do you? Just do a search on moral values/ethics... Again, I am so done with this!

 

...

I'm not going to reply here anymore on off-topic issues like the license since it might derail this thread, and I don't want that to happen. No offense... just a precausion.

Link to comment
Share on other sites

I'm not going to reply here anymore on off-topic issues like the license since it might derail this thread, and I don't want that to happen. No offense... just a precausion.

Could you move it to PM then instead? We would appreciate the help of an OSS expert in the licensing issues.

Thanks.

 

--------------------------------------------------

I will come back to this thread, just to update the "licensing" bit, because I find it very important and I think people would like to know.

 

Moderators may leave the lat posts, or move them where they belong.

Thanks.

Link to comment
Share on other sites

Could you move it to PM then instead? We would appreciate the help of an OSS expert in the licensing issues.

Thanks.

 

Okay, but I am not going to copy/paste parts of the license, but the first thing to be done is to either setup a source code repository and provide a link to the complete source code (also in the provided documentation) or simply provide the complete modified source code (not just a diff) including scripts and what not so that people can get the same product as the 'officially' deployed one.

 

Let me ask you a simple question: "Why do you provide the 'Unmodified Code' with a separate diff file (which imposes restrictions on the license) and not the complete, modified source code?". Why is that? What's the catch? I am pretty sure that I am missing something... so clue me in here (FTR: I am not implying anything here). Thanks.

 

Also, wouldn't it be easier, and much simpler to maintain when you did? I mean, why would you make things even more complicated, especially when there's no need to it?

 

And breaking the license might one day trigger the wrong kind of attention, but no worries about me because I'm not a mean, despicable man. Instead I live by the book of Honor and Respect.

Link to comment
Share on other sites

Okay, but I am not going to copy/paste parts of the license,

Why not? It would help clarify things for us and many others.

 

but the first thing to be done is to either setup a source code repository and provide a link to the complete source code (also in the provided documentation) or simply provide the complete modified source code (not just a diff) including scripts and what not so that people can get the same product as the 'officially' deployed one.

We did release the complete source code as a tarball.

 

Let me ask you a simple question: "Why do you provide the 'Unmodified Code' with a separate diff file (which imposes restrictions on the license) and not the complete, modified source code?". Why is that? What's the catch? I am pretty sure that I am missing something... so clue me in here (FTR: I am not implying anything here). Thanks.

 

Also, wouldn't it be easier, and much simpler to maintain when you did? I mean, why would you make things even more complicated, especially when there's no need to it?

Why? Should there be a bad reasons behind that? Honestly, why would I go for bad assumptions like that? A person who contributes with work should be welcomed and thanked.

 

I don't think there is any bad intention behind people posting patches. I can, actually, find reasons for that; The first thing I, personally, do is to check the difference, so providing a patch saves me time. In some cases the project is just too big to be post as a whole, In other cases you have a limited size of upload, people might want to save bandwidth..

 

I don't see what restrictions a patch would impose, really. I find it a very very common thing.

 

And breaking the license might one day trigger the wrong kind of attention, but no worries about me because I'm not a mean, despicable man. Instead I live by the book of Honor and Respect.

I'm more worried about intentionally doing something wrong or breaking my code of conduct.

Link to comment
Share on other sites

We would be glad to be proven wrong, and we'll fix our mistakes. And so, we are either blind or we didn't understand the license, maybe you can point out the exact thing that Chameleon is violating by quoting from the APSL?

With respect to the license, I just downloaded chameleon 2.0rc1 and in the doc/README it said:

 

1.

"Chameleon is released under the terms and conditions of Apple Public
 Source License (see attached APPLE_LICENSE) with the following restrictions:
 You may use this software for personal, educational and evaluation purposes
 only. To use this software for commercial purposes please contact us at:
 http://chameleon.osx86.hu/contact"

 

a) This violates APSL2.0 sec2.1b:

 

"You must include a copy of this License with every copy of Source Code of Covered Code and documentation You distribute or Externally Deploy, and You may not offer or impose any terms on such Source Code that alter or restrict this License or the recipients' rights hereunder, except as permitted under Section 6"

 

where would the aforementioned "attached APPLE_LICENSE" file be? I couldn't find it.

 

2. APSL2.0 sec2.3:

"Distribution of Executable Versions.  In addition, if You Externally Deploy Covered Code (Original Code and/or Modifications) in object code, executable form only, You must include a prominent notice, in the code itself as well as in related documentation, stating that Source Code of the Covered Code is available under the terms of this License with information on how and where to obtain such Source Code."

 

B) you have a 2.0rc1 release without the accompanying source code. This is without doubt the clearest violation of them all - without source, 2.0rc1 should be pulled. You say you have a tarball - what is the link of this tarball? Why is it not listed in the download documentation where it should be? I understand the gist of the rationale behind the move (can I have an "A"... and a "V"; it's just missing something in between...), but its still a violation.

 

3. APSL2.0 section 4:

4.	Larger Works.  You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product.  In each such instance, You must make sure the requirements of this License are fulfilled for the Covered Code or any portion thereof."

 

c) I don't know how you implement png, but if you used for example a GPL implementation, you would have to state it in the docs, provide the license - and of course the source. But I don't know the HOW, so this is only supposition. A public domain png implementation would obviously not fall under licensing issues, but the source of the implementation should be disclosed in the source files themselves.

 

At least I agree that the APSL license does give you the right to limit commercial use.

You also don't mention which version of the APSL it is released under. The original boot-132 source may state that, but since finding the chameleon source is nowhere as easy as getting the executable download.

Link to comment
Share on other sites

Why not? It would help clarify things for us and many others.

Why? Because this is not the right place to discuss it – feel free to join me either on the OSI forums or the Apple developers forums.

 

We did release the complete source code as a tarball.

Really? So where is it? Where's the link in your documentation pointing to how and where I can get the complete modified source? The one that is being deployed externally. That's part of the license you know.

 

Why? Should there be a bad reasons behind that? Honestly, why would I go for bad assumptions like that? A person who contributes with work should be welcomed and thanked.

But of course, but for me only when they respect the license. Clearly.

 

I don't think there is any bad intention behind people posting patches.

Of course not, and I am not complaining about the provided patches, and neither is anyone else here for that matter. That's also not the issue at hand here.

 

I can, actually, find reasons for that; The first thing I, personally, do is to check the difference, so providing a patch saves me time.

Absolutely, and you as developer should keep using patches for as long as you want, but the license is clearly stating that you:

 

1) must comply with the license.

2) need to provide a link from your documentation to the source code, and how to get it.

 

Just point me to it so that I can have a look at it.

 

In some cases the project is just too big to be post as a whole,

Too big? Really? I mean I am used to source code repositories, like the one for Mozilla (since 1999) and Ubuntu (from day one) so size is clearly not an issue here. Sticking to the license is.

 

In other cases you have a limited size of upload, people might want to save bandwidth..

It's all about choice, really. I mean you don't have to add the complete and modified source code with the deployed program, because all you need to do is to add a link, from your documentation, and explain how people can get it. That's all.

 

Bandwidth issues are a moot point, really, because you can setup a project for free. Instantly solving all your bandwidth and archive problems. I think that you as developer should know where to go. Right?

 

I don't see what restrictions a patch would impose,

And that is exactly the problem, because not providing the latest up-to-date source code is simply a restriction and breaking the rules.

 

really. I find it a very very common thing.

It might be here, but I can assure you that it is far from a "common thing". Common practice is to setup a project, with a source code repository (preferred) and let other developer, like me, step in and help and expand the code. The latter is clearly a major pain, because people did in fact add commands like: "they don't want to provide the source code until they are ready". And that my friend is one of the restrictions I am facing here :rolleyes:

 

Just don't imply restriction on us, like not giving us the whole and modified source code in human readable form.

 

I'm more worried about intentionally doing something wrong or breaking my code of conduct.

Which is all fine and dandy, but it is, really, not your problem. That's not how Open Source works. You use OSS and have already accepted the APSL so please... stick to it. In fact the APSL can help protect your IP and copyright, for the modifications you have made, even when things get rough... like getting the official notice after breaking a patent or other peoples IP/Copyright.

 

In fact I won two lawsuits against incorporations, and several individuals, who all thought to be smart. In other words, it can help protect you, and in a good way. Seriously!

Link to comment
Share on other sites

With respect to the license, I just downloaded chameleon 2.0rc1 and in the doc/README it said:

 

1.

"Chameleon is released under the terms and conditions of Apple Public
  Source License (see attached APPLE_LICENSE) with the following restrictions:
  You may use this software for personal, educational and evaluation purposes
  only. To use this software for commercial purposes please contact us at:
  http://chameleon.osx86.hu/contact"

 

a) This violates APSL2.0 sec2.1b:

 

"You must include a copy of this License with every copy of Source Code of Covered Code and documentation You distribute or Externally Deploy, and You may not offer or impose any terms on such Source Code that alter or restrict this License or the recipients' rights hereunder, except as permitted under Section 6"

 

where would the aforementioned "attached APPLE_LICENSE" file be? I couldn't find it.

That's from the very first release(s), and we were only two persons, I wasn't aware about it violating the license, and was left and forgotten. It will be fixed real soon.

 

Thank you!

 

2. APSL2.0 sec2.3:

"Distribution of Executable Versions.  In addition, if You Externally Deploy Covered Code (Original Code and/or Modifications) in object code, executable form only, You must include a prominent notice, in the code itself as well as in related documentation, stating that Source Code of the Covered Code is available under the terms of this License with information on how and where to obtain such Source Code."

 

:D you have a 2.0rc1 release without the accompanying source code. This is without doubt the clearest violation of them all - without source, 2.0rc1 should be pulled. You say you have a tarball - what is the link of this tarball? Why is it not listed in the download documentation where it should be? I understand the gist of the rationale behind the move (can I have an "A"... and a "V"; it's just missing something in between...), but its still a violation.

You're right here again, but it was due to a misunderstanding/misinterpretation of the "twelve (12) months" in section 2.2 ©

Source Code of Your Externally Deployed Modifications must be released under the terms set forth in this License, including the license grants set forth in Section 3 below, for as long as you Externally Deploy the Covered Code or twelve (12) months from the date of initial External Deployment, whichever is longer.

for here is the key, and I only understood it lately. And for that, the sources for v2.0RC1 r431 will be up later.

 

About me saying; "We did release the complete source code as a tarball.", I was referring to the complete sources we released (1.0.11), in regard to the patch/diff vs the complete sources issue. I'm not stupid to claim we released the sources for RC1. Sorry for not being clear.

 

3. APSL2.0 section 4:

4.	Larger Works.  You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product.  In each such instance, You must make sure the requirements of this License are fulfilled for the Covered Code or any portion thereof."

 

c) I don't know how you implement png, but if you used for example a GPL implementation, you would have to state it in the docs, provide the license - and of course the source. But I don't know the HOW, so this is only supposition. A public domain png implementation would obviously not fall under licensing issues, but the source of the implementation should be disclosed in the source files themselves.

Actually we can't use GPL'd code because of license incompatibility. You'll have an answer for that in the sources :)

 

I don't know why it took this much posting and discussion to get a reply like yours, clear and to the point.

 

Thanks again.

 

Why? Because this is not the right place to discuss it – feel free to join me either on the OSI forums or the Apple developers forums.

And by that, I think our discussion has come to an end, a good end, I hope. :)

 

A few of the above answers can be also answers to Master Chief's questions. others are left unanswered for the above mentioned reason.

 

Sorry for bloating the thread, I thought it was very important, and the result is good. :)

 

 

The sources are not clean, there is a lot to fix, so I hope to see patches being sent and posted in our forums. Although, I'm not sure this would work in this community, I want to be surprised. :P

 

Anyway, happy hacking!

Link to comment
Share on other sites

I've done some more reading of the APSL. How APSL code could be used in conjunction with other non-APSL code. There are some issues:

 

• APSL has a clause dealing with patent litigation. Since there are no patents involved here (that I know of, which is admittedly not much), this is a non-issue and can be deemed non-applicable to chameleon.

• APSL has "Dispute Resolution" & "Governing Law" clauses that force you into California, USA. choose a license that doesn't mention these.

• APSL has a clause compelling release of source code.

 

But there is a way to have your cake & eat it too (so to speak).

1.3 "Covered Code" means the Original Code, Modifications, the
combination of Original Code and any Modifications, and/or any
respective portions thereof.

1.5 "Larger Work" means a work which combines Covered Code or portions
thereof with code not governed by the terms of this License.

4. Larger Works. You may create a Larger Work by combining Covered
Code with other code not governed by the terms of this License and
distribute the Larger Work as a single product. In each such instance,
You must make sure the requirements of this License are fulfilled for
the Covered Code or any portion thereof.

This clause gives you the ability to:

• integrate all changes directly into the original files. These modifications fall under the APSLv2.

• add calling code to supplemental files. The calling code is APSLv2 governed & subjected to code release. The supplemental files are subject to its original license. This means that you can have whatever compatible license in the supplemental files, (libpng would be perfectly compatible here, even LGPL I believe if you were releaseing all the source). However, you might want to avoid those licenses which compel source code release. Why? The APSL only coverns that portion originally under the APSL. Added files not not necessarily *have* to be APSL - permissible via "Larger Work".

 

This gives you a number of options:

• full release of all source code. All files governed by whatever license are disclosed in the comments of each file.

• partial release of source code covered by APSL, and include the object files of any non-APSL covered files to permit the full building of chameleon. This could cause the chameleon release maintainer quite a bit of grief.

• partial release of source code covered by APSL. Say you use the opensource libpng. The license @ http://www.libpng.org/pub/png/src/libpng-LICENSE.txt says that you can use/add it to chameleon, and not have to release the source:

Permission is hereby granted to use, copy, modify, and distribute this
source code, or portions hereof, for any purpose, without fee, subject
to the following restrictions:

1. The origin of this source code must not be misrepresented.

2. Altered versions must be plainly marked as such and must not
  be misrepresented as being the original source.

3. This Copyright notice may not be removed or altered from any
  source or altered source distribution.

The Contributing Authors and Group 42, Inc. specifically permit, without
fee, and encourage the use of this source code as a component to
supporting the PNG file format in commercial products.  If you use this
source code in a product, acknowledgment is not required but would be
appreciated.

**********************************

So say you have this in your code:

//covered by APSL
main (int blah) {
fprintf(stdout, "I see London.\n");
fprintf(stdout, "I see France.\n"); //modified. PeotMaster Jun 10, 2009
return 0;
}

 

is just as permissible as:

//covered by APSL
#include chameleon_mods.h
main (int blah) {
fprintf(stdout, "I see London.\n");
//this is a modifcation, which you are compelled to include via APSL2.0 sec1.3
chameo_fprint("I see France.\n"); //modified. PeotMaster Jun 10, 2009
return 0;
}

//chameleon_mods.c
//private, not covered by APSL; need not be released.
chameo_fprint(char* cstring) {
fprintf(stdout, "%s", cstring);
return;
}

 

You could work via pointers as well:

 

//covered by APSL:
uint64_t llonga = 1;
llonga++; //modified by chameleon team to fix bug #123456
fprintf(stdout, "$llu\n", llonga);

can be rewritten:

 

//covered by APSL:
uint64_t llonga = 1;
chamelAdj1(&llonga); //this line is covered by APSL & must be released as a "modification"
fprintf(stdout, "$llu\n", llonga);

//chamelFiles.c
//private file not subject to APSL or source code release
void chamelAdj1(uint64_t *llptr) {
(*llptr)++; //this fixes bug #123456
return;
}

 

To be clear, you can't just wholesale move code to new files now. You have released code under the APSL. APSL2.0 sec1.6 says that any APSL covered modifications are still under the APSL:

1.6 "Modifications" mean any addition to, deletion from, and/or change to, the substance and/or structure of the Original Code, any previous Modifications, the combination of Original Code and any previous Modifications...

.

You either need to rewrite the code, or only newly released code falls under the new license.

 

If any of your new functions contain any APSL-covered code, they fall under APSL sec1.6 "Modifications":

When code is released as a series of files, a Modification is: (a) any addition to
or deletion from the contents of a file containing Covered Code; and/or (b) any new file or other representation of computer program statements that contains any part of Covered Code.

As long as your chameleon_mods files have no APSL-covered code, you don't fall under the APSL. Only the modifcations to the original files that call the new functions are APSL (which isn't a big deal, so people know you have a function AAA(bStruct ccc)).

 

I hope that helps with derivatives. Use calling functions & find an acceptable license. Or create one of your own for your own files containing no APSL code. That way you can be in APSLv2 compliance & not release all the new enhancements.

*******************************

hope you find the source useful.

 

but any future projects i choose to work on will now be closed source.

 

enjoy the source.

Well, if you were of any use before, you would have read the APSL before you went criticizing. I'm still a fan of the GPL.

 

[edited to show how to get around APSL via pointer example]

Link to comment
Share on other sites

hope you find the source useful.

 

but any future projects i choose to work on will now be closed source.

 

enjoy the source.

Swell... and who is bs0d if I may ask? Is this the second person referred to in one of Kabyl's posts, or some other Chameleon contributor? Or was this just some random and unrelated statement?

 

You know what; some people here are actually here to help, and not to steal and/or criticize your work.

 

@Kabyl,

 

Welcome to the other side :D

Link to comment
Share on other sites

Its a pity that we have to fight like this :P

I believe that chameleon's team has done very valuable work to the community and while it can be argued if releasing chameleon's binaries with a source code violates the license, we could behave like lawyers and try to nitpick on the legal terms or give them some allowance and expect them to release the source code as they promised. To me its clear their intentions were not to try to overcome apple's license but just prevent certain individuals like Andy Vandyick (spelling?) from releasing modifications of Chameleon 2. While he is free to do so (ah the beauty of the open source licenses!) I could understand the reasoning of a programmer not wanting other to take his work and steal his fame (ah the damnation of the open source licenses!).

Also and this is just a small suggestion to chameleon team: if you really want to protect your work but still develop following open source principles you could always follow the firefox/iceweasel route: release and develop with open principles (public source repositories and bug trackers that anyone can check modify and contribute) but restrict the use of "Chameleon" name & artwork to official releases from the team, like mozilla do with firefox (anyone can mod and release a version of firefox but they cant use "firefox" name and artwork).

Link to comment
Share on other sites

To me its clear their intentions were not to try to overcome apple's license but just prevent certain individuals like Andy Vandyick (spelling?) from releasing modifications of Chameleon 2. While he is free to do so (ah the beauty of the open source licenses!) I could understand the reasoning of a programmer not wanting other to take his work and steal his fame (ah the damnation of the open source licenses!).

 

Come on, give these people a little more credit. Do you really think that's the reason.

 

I don't believe for a second that not releasing the source has anything to do with staying famous.

 

It's about having control of what gets out to the public. Knowing exactly what people are using makes bug tracking and support less complicated.

If there was 9 different modified versions of RC1 available and people started reporting bugs using those, things would quickly get out of hand.

Link to comment
Share on other sites

...It's about having control of what gets out to the public. Knowing exactly what people are using makes bug tracking and support less complicated.

If there was 9 different modified versions of RC1 available and people started reporting bugs using those, things would quickly get out of hand.

While I can understand your sympathy, which is good, it is by no means a valid argument to hold back with source code when people deploy software which should respect the Open Source spirit. And if it was a valid argument, which again it isn't (conform the license) then every single Open Source project would have stalled by now!

 

Yes, there are good ways of dealing with this problem, and yes I personally deal with it every single day (the Mozilla tree changes a large number of times each day) so no... it won't have to be a problem.

Link to comment
Share on other sites

OK, lets get back on topic. :)

Anyone know how to set motherboard version. I'm using smbios.plist with Chameleon 2.

 

I always get:

 

Motherboard	Apple Computer, Inc. Mac-F4218EC8 x.x

 

How do I set this to 1.0? Am I missing a string in the smbios.plist?

Link to comment
Share on other sites

MChief: after reading your posts, I guess we have more or less the same age. I understand your views on licensing but why don't you contact the guys directly? If we're willing to help/contribute we can do so without calling names nor evangelizing about our achievements.

 

Dr. Hurt: if you're talking about the output of ioreg -l |grep board-id, take a look @ this thread to see if it helps

Link to comment
Share on other sites

OK, lets get back on topic. :(

Anyone know how to set motherboard version. I'm using smbios.plist with Chameleon 2.

 

I always get:

 

Motherboard	Apple Computer, Inc. Mac-F4218EC8 x.x

 

How do I set this to 1.0? Am I missing a string in the smbios.plist?

yea.. I think Chameleon2 currently doesn't support to override Mobo Version (Revision Number)

here is when I install on Asus P5KPL-SE. I can't change x.0x

 

GeekbenchX64_Asus-P5KPL-SE.png

Link to comment
Share on other sites

MChief: after reading your posts, I guess we have more or less the same age. I understand your views on licensing but why don't you contact the guys directly? If we're willing to help/contribute we can do so without calling names nor evangelizing about our achievements.

Eh, because I was asked to do it here?

 

And name calling? Please point me to the spot where I did so, or where I talk about my achievements because I don't recall to have done so – and it is most certainly not in line with who I am. Thank you!

 

Back to on-topic replies :(

Link to comment
Share on other sites

Motherboard	Apple Computer, Inc. Mac-F4218EC8 x.x

 

How do I set this to 1.0? Am I missing a string in the smbios.plist?

 

<key>SMsystemversion</key> <string>1.0</string>?

 

..no wait.. maybe not. Geekbench on my iHack9,1 says "Apple Inc. Mac-F2218FA9 Rev 1.xx".

Link to comment
Share on other sites

Come on, give these people a little more credit. Do you really think that's the reason.

 

I don't believe for a second that not releasing the source has anything to do with staying famous.

 

It's about having control of what gets out to the public. Knowing exactly what people are using makes bug tracking and support less complicated.

If there was 9 different modified versions of RC1 available and people started reporting bugs using those, things would quickly get out of hand.

 

English is not my mother language so maybe my grammar was wrong, but I didnt mean at all they wanted to stay famous, but maybe they didnt want others to be famous at the teams work expense. I dont know, they would know the reasons, its not really my or anyones business...

Its imposible to control what gets to the public with open source software, once you release the source its in devils hands, some mods will be great some will be just rubbish, others will be just relabels.

Only way I can think of to have some control is restricting Chameleon name to official releases, thats perfectly legal because the name or brand is not covered under the open source license.

As far as bug tracking and support, there is no public bug tracking or official support that I know of, only the informal stuff being done in voodooprojects forums. There is always a way to find out if you are using official release or a fork (include a tag file, check the md5 of boot file, pgp signature...).

Link to comment
Share on other sites

  • 2 months later...

To fix UUID error without kext (PlatformUUID.kext, UUID.kext, SMBIOSResolver.kext) and other hacks

replace this file in Chameleon source (i386/libsaio/).

It just add system-id to /efi/platform

after that IOPlatformExpert in kernel get this property and create PlatformUUID key based on system-id value.

fake_efi.c.zip

Sorry for English

Link to comment
Share on other sites

 Share

×
×
  • Create New...