6 Replies Latest reply on Sep 22, 2014 12:47 PM by Jon Tara

    Building 5.0 Rhodes Gem

    Jon Tara

      I prefer to build the Rhodes Gem myself, that way I can get the latest updates from the n-n-stable branch.


      First off, though, there still is no guidance on version numbers and tags. I'm guessing that I should be using the 5-0-stable branch. Unclear to me what is in master, because it has the version file set to 4.1.0. (But has a lot of newer checkins not present in 5-0-stable).


      Can somebody tell me exactly what branch (preferably, a git hash) was used to build the Gem in the 5.0 Suite?


      I tried to build the Gem from the 5-0-stable branch, but I get this:


      ☺ ➜  motorola-rhodes gem build rhodes.gemspec                                                                                                                                                                git:(5-0-stable) ✗

      WARNING:  See http://guides.rubygems.org/specification-reference/ for help

      ERROR:  While executing gem ... (Gem::InvalidSpecificationException)

          ["lib/commonAPI/coreapi/ext/platform/android/jni/Coreapi_impl.cpp", "lib/commonAPI/coreapi/public/api/rhoapi-native.all.js", "lib/extensions/gmaps/ext/platform/android/Rakefile", "lib/extensions/openssl.so/ext/iphone/openssl/openssl.xcodeproj/project.pbxproj", "lib/extensions/openssl.so/ext/iphone/openssl/openssl/openssl-Prefix.pch", "lib/extensions/openssl.so/ext/wm/tmp/MC3000c50b (ARMV4I)/Release/BuildLog.htm", "lib/extensions/openssl.so/ext/wm/tmp/Windows Mobile 6 Professional SDK (ARMV4I)/Release/BuildLog.htm", "platform/wm/rhodes/CEBrowserEngine.cpp", "platform/wm/rhodes/CEBrowserEngine.h", "platform/wm/rhodes/IBrowserEngine.cpp", "platform/wm/rhodes/IBrowserEngine.h", "platform/wm/rhodes/IEBrowserEngine.cpp", "platform/wm/rhodes/IEBrowserEngine.h", "res/generators/templates/iphone_project/Settings.bundle/Root.plist", "res/generators/templates/iphone_project/Settings.bundle/en.lproj/Root.strings", "res/libs/motorolalicence/android/MotorolaLicence.h", "res/libs/motorolalicence/android/libMotorolaLicence.a"] are not files


      For now, I'll just extract the Gem from the Suite download. Maybe I can guess based on the file date...


      From checkin comments, I gather this was going to be 4.2.0, and probably somebody made a marketing decision to call it "5.0". But now unsure of the relationship between repo branches and the released suite.


      BTW, the new rhomobile.com site looks great, and the new licensing options greatly broaden the applicability of licensed components to different kinds of projects. It clarifies and reinforces that Rhodes/RhoElements is not just for Motorola devices. I think it makes developers not using it with Motorola products much more comfortable with Rhodes, as frankly, this has been a point of nervousness ever since Motorola acquired RhoMobile.


      Edit: I see the current Suite is called 5.0.2 and the rhodes.gem inside is also called 5.0.2. There is no such tag or branch in the git repo, nor any branch/tag I can find that has a Rhodes version file with 5.0.2. So, no way for me to correlate the release with the actual repo.


      Note that this could be important to some users because they'd like to do a security audit, etc. It's impossible if you can't correlate the Gem with the repo. And in that same situation, you would always want to build it yourself from the repo.


      As well, any diligent developer would want to know exactly what fixes/changes were made from one version to the next. With open-spruce software, repo  checkin comments are the best way to do this. Release notes (when available) are nice, but the source code and checkin history is the most reliable. But without knowing exactly which commit was used for the build, this is impossible.


      Suggestion: please get Rhodes builds tagged in some manner with a git hash. Maybe could be retrieved by a running app from System.git_hash or some-such. It it were also in some static file in the source, that would be helpful as well.

        • Re: Building 5.0 Rhodes Gem
          Kutir Mobility

          Hi Jon


          This issue needs help from Motorola. We will raise this issue with them to get an answer.


          In the mean time we will also try to build the gem from our side to replicate the error.


          Thank you.

          Kutir Mobility.

          • Re: Building 5.0 Rhodes Gem
            Jean-Eric Godard


            I'd like to try to build d Rhodes from source too.

            Where can I found Rhodes 5.0 sources?


            Thanks for help.


            Best Regards


            Jean-Eric Godard

              • Re: Building 5.0 Rhodes Gem
                Pietro Francesco Maggi

                Rhodes sources are covered by MIT license and available on github.


                At the same RhoMobile account you can find other repository for sample apps, RhoConnect Source Adapters and our documentation projects where you can open issue or pull requests.



                  • Re: Building 5.0 Rhodes Gem
                    Jon Tara

                    Is there some new Gem organization and new Gem build instructions?

                    I see there is a new gemspec file, rhodes-core.gemspec. As well, there is still rhodes.gemspec but it fails with a long list of file names, saying they are not files. I am able to create `rhodes-core.gem`, but not `rhodes.gem`. Perhaps there is now some build process that needs to be done before packaging the Gem(s?)?

                    rhodes-core.gem is 1/10 the size of my old rhodes-5.0.2.gem so cannot be the complete package

                    How do I create the Rhodes Gem(s?) now in current master?

                      • Re: Building 5.0 Rhodes Gem
                        Jon Tara

                        OK, refreshing my memory, you have to use `rake gem` and keep in mind that the Gem build will not work with RubyGems 2.x. So, I had to use an old 1.9.3 Ruby to create the Gem.


                        Note to self: figure out what Gems are needed to build the Gem. I just used an old Rhodes 2.x Gemset that had everything needed.

                    • Re: Building 5.0 Rhodes Gem
                      Jon Tara

                      Source is found here:


                      rhomobile/rhodes · GitHub


                      I built master yesterday, and works with Xcode 6.0.1/iOS8 well enough for my testing purposes, but don't know how stable master should be considered.


                      It can be difficult to identify which commit corresponds to official releases. You have to take an educated guess based on date/time and I think sometimes there are some changes made before distribution that are not in the repo. (version labeling).


                      There used to be branches maintained like 5-0-stable that ought to give you the latest released version for the major release number, but that seems to have been abandoned with the 5.0 release, as 5-0-stable is not up-to-date with the released Gem found in RMS 5.0.2. (RhoMobile Suite).