Copy link to clipboard
Copied
In trying to build entirely from source code, I've come across a dependency on trunk/frameworks/libs/player/10/playerglobal.swc, but I don't see how/where that gets built.
Copy link to clipboard
Copied
I am afraid it is a part of Flash Player 10 which is not open source (yet ).
Copy link to clipboard
Copied
Hmm, this is very problematic. In order to package this for Fedora, I need to be able to build entirely from source code, without using any pre-built non-free binaries. Is there a workaround? I have not yet delved into the source to see what exactly is the nature of the dependency on playerglobal.swc.
Copy link to clipboard
Copied
Playerglobal.swc includes just the interface definitions for classes that are in the Player. The code itself is all baked into Flash Player and can't be modified. We don't provide a text version of the interface definitions as modifying it would break your code.
Matt
Copy link to clipboard
Copied
Well, would you consider including the source? Seems like it would be sufficient to include a README file that said "this code provided for people who want to try building entirely from source, don't modify or your swfs won't work with flash player."
If it's really just a long list of interface definitions, it seems like it ought to be included for this project to be legitimately called "open source."
I will help however I can...contributing patches...please...
S.
Copy link to clipboard
Copied
Most of the code is actually C++ code, it's not ActionScript, it just has AS APIs exposed. So we're not including source for it at this point.
Matt
Copy link to clipboard
Copied
So, for example, a) building mxmlc and b) executing mxmlc require a pre-compiled, closed-source playerglobal.swc?
How exactly is this open source again?
Adobe--
Steve.
Copy link to clipboard
Copied
The output you are targeting is closed source unfortunately, we don't have the ability to provide source for the runtime, so you have to rely on the SWC which provides the metadata that you need for compilation.
It's not a perfect system but it's the best we can provide. I know you want to argue the semantics of it, but it's not gonna make much of an impression on me. You do not need playerglobal.swc to build mxmlc see itself, you need playerglobal.swc to use mxmlc to target the Flash Player. If you were to take the compiler, adjust it to not rely on the Flash Player (by not using the framework at all and outputting different classes), then you wouldn't need playerglobal.swc.
Matt
Copy link to clipboard
Copied
The format of .swc files is a published standard, isn't it ?
Copy link to clipboard
Copied
Yes, but the contents are a closed binary swf. Maybe I'm missing something, but I don't see the usefulness of the Flex framework without the flash libs.
Copy link to clipboard
Copied
Hi ya
Not meaning to sound off'ish here, but why exactly do you even need this source?
Also I really don't see how this part of the system being closed has any influence on how 'open source' the framework is.
You wouldn't expect the Flash Player to be OS so why would the interface code need to be? It's not something you'd ever want to change really.
I may be totally wrong of course and you may have a reason to need this and not having it may be causing you a problem but for the life of me I can't see what.
Be interested to hear exactly what the problem with not having the source is
Again please don’t read the above as confrontational (always too easy to sound that way in an email), it's not meant to be. Just curious
glenn
Copy link to clipboard
Copied
No offense taken, and I apologize for my frustrated tone in previous posts on this thread.
I was hoping to package the Open Flex SDK as an rpm for inclusion in the Fedora project packages. I thought this would be a Good Thing, both for Fedora users (having access to a toolchain for producing swfs) and for Adobe (increasing their base of users of their tech and strengthening image in Open Source community).
Not to mention that I was using Flex to build a RIA as part of a project ultimately destined for Fedora inclusion.
However, while the Flex opnSDK license itself (MPL) is compatible with Fedora guidelines, the guidelines require that Fedora packages must be buildable entirely from source.
The main rationale being: "Security: Pre-packaged binaries and libraries not built from source could include anything, malicious, dangerous, or just broken. Also, these are functionally impossible to patch." (http://fedoraproject.org/wiki/Packaging:Guidelines#No_inclusion_of_pre-built_binaries_or_libraries)
A cursory scan of /3.3.0/frameworks/projects/framework/src finds 383 source files with "include flash" in the source. So it would appear that the framework cannotfor any practical purposebe built without flash, and further that the source for the necessary headers for flash is not open. This is the very definition of a non-free tool and is precisely the kind of thing that licenses like the GPL are designed to prevent. I am not a lawyer, but I believe the MPL (linked above) prohibits it as well.
Thank you for asking.
Steve
Copy link to clipboard
Copied
Arrr, all becomes clear
Interesting project tho.
Copy link to clipboard
Copied
Well, those must only be guidlines, because, for instance, there are closed binary blobs in various wireless and graphics drivers...
In fact, the very document you quote says "Some software (usually related to compilers or cross-compiler environments) cannot be build without the use of a previous toolchain" so that's *exactly* the case here.
Have you spoken to the people it asks you to speak too ?
If there really is a proplem, I'm sure both Adobe and Fedora would want to resolve it.
Copy link to clipboard
Copied
For the record, that is not the case here at all.
The compiler can be built without the flash.* classes.
The flex framework cannot. And one could compile a "flex class" with no use of the flash API, but flash is the whole raison d'etre of flex.
Steve
Copy link to clipboard
Copied
http://www.opensource.org/licenses/mozilla1.1.php:
"including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable"
sounds like a blanket prohibition for this kind of thing.
Copy link to clipboard
Copied
hello matt, hello everybody
one question here: swf file format is open. is it legal to decompile playerglobal.swc and make the sources public? after all, this is trivial to do
and, steve, i guess: flex sdk can also be used to target tamarin directly (i used it in this project: http://code.google.com/p/mod-actionscript/ ), so it's "raison d'etre" can be considered a bit wider
Copy link to clipboard
Copied
It's not technically in the license that you can decompile playerglobal but it shouldn't be a big deal since changing that code won't actually do anything. It's all baked into the Player, it can't be modified.
Matt
Copy link to clipboard
Copied
Hello,
Is it possible to create a dummy SWC which contains all the function definitions like this:
package flash.accessibility
{
import flash.display.DisplayObject;
public class Accessibility
{
public static native function get active():Boolean;
public static native function sendEvent(source:DisplayObject, childID:uint, eventType:uint, nonHTML:Boolean = false):void;
public static native function updateProperties():void;
};
}
Greetings
Copy link to clipboard
Copied
It's not something we have time to generate ourselves right now, but
maybe something we can do in the future. But yes, it should be
possible to do this.
Matt
Copy link to clipboard
Copied
Two things:
1) It's trivial to generate such mock code just using the catalog.xml from playerglobal.swc and describeType(), you could build an AIR app to do it in 2 hours. I'm *assuming* that wouldn't violate any terms of the license, and as there's no copy protection on Player and you're only doing it for interop, you're not violating any laws.
2) From the top of my head, the source for playerglobal.abc is in Tamarin anyway.
-Josh
Copy link to clipboard
Copied
It bored me to tears to find it but here it is : https://www.adobe.com/support/flashplayer/downloads.html - at the bottom of the page.