Here's a follow-up with my progress in March. Last month, I had gotten airglobal.swc building, and now, I've figured out how to exclude the AIR-only APIs and build a separate playerglobal.swc too. I've committed playerglobal and airglobal projects to royale-typedefs. Again, these .swc files get built from the Apache-licensed doc XML files that Adobe donated to Apache Flex.
I've made some changes to the builds for royale-asjs to start using these new .swc files. Libraries build. Examples build. Tests pass. These .swc files are working nicely. Things can still be improved, but it's a solid start. Maven is using our airglobal/playerglobal for pretty much everything. You can run `mvn clean install` at the root of royale-asjs, and it will build all framework .swc files without requiring any Adobe artifacts. You can also run with `-P with-distribution,option-with-swf` to build a zip/tar.gz distribution without requiring any Adobe artifacts. The only time that the Maven build still requires Adobe artifacts is if you specify `-P with-distribution,option-with-swf` and `-DdistributionTargetFolder=` together. The `-DdistributionTargetFolder` option merges in everything from the AIR SDK (not only airglobal.swc, but also executables like adt and adl), and I assume that we still want that to be possible, but optional. If you need a SWF distribution without Adobe stuff, just build the zip/tar.gz version and extract it. I basically consider the Maven changes to be done at this point. Ant is using our airglobal/playerglobal in some places, but not everywhere yet. You can run `ant` in the root of royale-asjs, and it will build all framework .swc files without requiring Adobe artifacts. If you have env.AIR_HOME or env.PLAYERGLOBAL_HOME specified, it will still use Adobe artifacts, and I plan to keep that working for anyone who happens to prefer that. If you don't have those environment variables set, it will use our airglobal/playerglobal automatically. Building a SWF distribution with Ant still requires env.AIR_HOME and env.PLAYERGLOBAL_HOME at this time. I just didn't have quite enough time this month to finish that part. Next month, I hope to be able to modify the Ant build to do a full release without Adobe artifacts (except you'll still need Flash Player to run tests, of course). I know that there's been talk of doing a release soon. While my work is still in progress, it's currently in a state that should not prevent a release, if someone wants to do one. As I said, you can still specify env.AIR_HOME and env.PLAYERGLOBAL_HOME, and the Ant release distribution build with Adobe artifacts should work the same as before. -- Josh Tynjala Bowler Hat LLC <https://bowlerhat.dev> On Thu, Feb 25, 2021 at 3:55 PM Josh Tynjala <joshtynj...@bowlerhat.dev> wrote: > Just an update on my progress in February to create an Apache-licensed > playerglobal.swc. Last month, I had successfully built the SWC file using > the Apache-licensed asdoc XML files that are in the Flex SDK, but I hadn't > had a chance to see if I could drop it in to replace the official Adobe SWC > yet. When I finally got a chance to try it this month, my SWC didn't work > at first. However, I was able to make some tweaks to the APIs where I > discovered that types/parameters were slightly wrong in the docs. I can now > successfully use the SWC to build the entire Royale framework (including > running RoyaleUnit tests), and I can run the compiler's > "royale.dependent.tests" integration tests too. > > I also cleaned up the command line API for playerglobalc to make it work > more like other compiler tools, like mxmlc, compc, or externc. After > getting that working, I updated the royale-maven-plugin to make it possible > to build the same SWC using either Maven or the command line. > > What I still need to do: > > - Build separately playerglobal.swc and airglobal.swc. AIR-only APIs > should not appear in playerglobal.swc. > - Test the SWC with some non-Royale projects too. Since building the > Royale framework helped me find some APIs that were slightly wrong in the > docs, I figure that I should test the SWC with some other projects too. I > plan to drop the SWC into the Flex SDK, and test some apps using Flex, > Starling, and Feathers. That should cover a wide range of APIs. If they all > compile and run, then I think our Apache-licensed replacement will be > looking pretty solid. > - Finally, I need to figure out how to integrate our new > playerglobal.swc/airglobal.swc into the distribution builds. I'd like to > allow anyone building the framework to continue to use SWCs from Adobe or > Harman, if they'd prefer. > > -- > Josh Tynjala > Bowler Hat LLC <https://bowlerhat.dev> > > > On Wed, Jan 20, 2021 at 2:16 PM Josh Tynjala <joshtynj...@bowlerhat.dev> > wrote: > >> FYI — I just pushed a prototype playerglobal-source-gen project to the >> royale-compiler repo. It's a command line app that can generate .as files >> from the Flex SDK's Apache-licensed asdoc files for playerglobal.swc. The >> idea is to use these generated .as files to compile our own >> playerglobal.swc that we can distribute under the Apache license. If Adobe >> ever decides to remove playerglobal.swc from their website, we'll have our >> version available as a backup. >> >> I've gotten the project far enough along that I can successfully build >> the generated .as source files into a .swc without any compiler errors. >> However, I haven't yet had a chance to check if that .swc can be used in an >> SDK/distribution instead of the official playerglobal.swc or airglobal.swc. >> In February, when I have some more time, I'll continue testing all of that. >> I just wanted to share my current progress so far! >> >> -- >> Josh Tynjala >> Bowler Hat LLC <https://bowlerhat.dev> >> >> >> On Tue, Jan 5, 2021 at 1:34 AM Carlos Rovira <carlosrov...@apache.org> >> wrote: >> >>> Hi Josh, >>> >>> I think that's a very good idea. As less external dependencies we have >>> the >>> better. And I think that means one thing less to download or manage by >>> mavenizer. >>> >>> Could it be possible that you contribute it? >>> >>> Thanks >>> >>> >>> El lun, 4 ene 2021 a las 21:53, Josh Tynjala (<joshtynj...@bowlerhat.dev >>> >) >>> escribió: >>> >>> > If necessary, I believe that we can create our own custom >>> playerglobal.swc >>> > without running into license issues. >>> > >>> > Basically, the official playerglobal.swc contains only the APIs, and no >>> > implementation, so it's basically like the typedef/externs SWCs that we >>> > create for JS libraries in Royale >>> > >>> > The Apache Flex repo contains full ASDoc XML files for playerglobal.swc >>> > under an Apache license. These files should contain enough information >>> > about variable/property types and method signatures that someone could >>> > write a parser to get all of the data we need to generate AS3 stub >>> classes >>> > and build a SWC from that. >>> > >>> > -- >>> > Josh Tynjala >>> > Bowler Hat LLC <https://bowlerhat.dev> >>> > >>> > >>> > On Sun, Jan 3, 2021 at 11:07 AM Harbs <harbs.li...@gmail.com> wrote: >>> > >>> > > Let’s wait and see whether we are dealing with real issues or not. If >>> > it’s >>> > > an issue we can debate solutions. >>> > > >>> > > I’m happy to ask my Adobe contacts what the plan is. >>> > > >>> > > > On Jan 3, 2021, at 8:52 PM, Carlos Rovira <carlosrov...@apache.org >>> > >>> > > wrote: >>> > > > >>> > > > Hi Harbs, >>> > > > >>> > > > the problem here's that I think we are on Apache, and using a >>> piece of >>> > > > software that is under a clear license use will be against the >>> > foundation >>> > > > rules. So although you or I can host the files, that's not seem to >>> me >>> > > like >>> > > > a solution to the real problem. >>> > > > >>> > > > I'm for go step by step and first try to talk with Adobe >>> > representatives >>> > > to >>> > > > get the permission for Apache to host the player files only for our >>> > flex >>> > > > and royale use cases. I think we could continue discussion after we >>> > know >>> > > > the solution to this request >>> > > > >>> > > > Can you, Alex or others do this request? or if you want I can do >>> it, >>> > but >>> > > > need someone to provide me the contact at adobe. >>> > > > >>> > > > Thanks >>> > > > >>> > > > >>> > > > >>> > > > El dom, 3 ene 2021 a las 15:59, Harbs (<harbs.li...@gmail.com>) >>> > > escribió: >>> > > > >>> > > >> There’s no license agreement when downloading playerglobal or the >>> > > content >>> > > >> debugger. >>> > > >> >>> > > >> I’m willing to take the risk to personally host these files if >>> > > necessary. >>> > > >> >>> > > >>> On Jan 3, 2021, at 4:47 PM, Christofer Dutz < >>> > christofer.d...@c-ware.de >>> > > > >>> > > >> wrote: >>> > > >>> >>> > > >>> And I doubt we would be allowed to simply upload Adobe stuff to >>> any >>> > > >> other server wirhout explicit conset from them. The license >>> agreement >>> > > you >>> > > >> agreed to when downloading explicitly forbids that (at least it >>> did, >>> > > wenn >>> > > >> we were working on the Flex Mavenizer and I doubt things changed) >>> > > >> >>> > > >> >>> > > > >>> > > > -- >>> > > > Carlos Rovira >>> > > > Apache Member & Apache Royale PMC >>> > > > *Apache Software Foundation* >>> > > > http://about.me/carlosrovira >>> > > >>> > > >>> > >>> >>> >>> -- >>> Carlos Rovira >>> Apache Member & Apache Royale PMC >>> *Apache Software Foundation* >>> http://about.me/carlosrovira >>> >>