Protobuf: Unable to install google-protobuf gem on JRuby

Created on 24 May 2016  ·  73Comments  ·  Source: protocolbuffers/protobuf

The glcoud-ruby project has an issue opened by a user (GoogleCloudPlatform/gcloud-ruby#712) that is unable to install the latest version due to the dependencies on the grpc and google-protobuf gems not installing on jruby. I am not able to get the google-protobuf gem to install using versions 9.1.1.0 or 9.0.0.0.

Here is the install on mac:

$ ruby -v
jruby 9.1.1.0 (2.3.0) 2016-05-19 fe84e89 Java HotSpot(TM) 64-Bit Server VM 25.91-b14 on 1.8.0_91-b14 +jit [darwin-x86_64]

$ gem install --ignore-dependencies google-protobuf -v 3.0.0.alpha.5.0.5.1
Building native extensions.  This could take a while...
ERROR:  Error installing google-protobuf:
    ERROR: Failed to build gem native extension.

    current directory: /Users/blowmage/.gem/repos/jruby-9.1.1.0-grpc/gems/google-protobuf-3.0.0.alpha.5.0.5.1/ext/google/protobuf_c
/Users/blowmage/.rubies/jruby-9.1.1.0/bin/jruby -r ./siteconf20160524-43044-1fuqmwb.rb extconf.rb
NotImplementedError: C extensions are not supported
    <top> at /Users/blowmage/.rubies/jruby-9.1.1.0/lib/ruby/stdlib/mkmf.rb:1
  require at org/jruby/RubyKernel.java:944
   (root) at /Users/blowmage/.rubies/jruby-9.1.1.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
    <top> at extconf.rb:3

extconf failed, exit code 1

Gem files will remain installed in /Users/blowmage/.gem/repos/jruby-9.1.1.0-grpc/gems/google-protobuf-3.0.0.alpha.5.0.5.1 for inspection.
Results logged to /Users/blowmage/.gem/repos/jruby-9.1.1.0-grpc/extensions/universal-java-1.8/2.3.0/google-protobuf-3.0.0.alpha.5.0.5.1/gem_make.out

Here is the install on linux:

$ ./bin/jruby -v
jruby 9.1.1.0 (2.3.0) 2016-05-19 fe84e89 OpenJDK 64-Bit Server VM 24.95-b01 on 1.7.0_95-b00 +jit [linux-x86_64]

$ ./bin/jruby -S gem install --ignore-dependencies google-protobuf -v 3.0.0.alpha.5.0.5.1
Building native extensions.  This could take a while...
ERROR:  Error installing google-protobuf:
    ERROR: Failed to build gem native extension.

    current directory: /home/vagrant/.rvm/gems/ruby-2.3.0/gems/google-protobuf-3.0.0.alpha.5.0.5.1/ext/google/protobuf_c
/home/vagrant/jruby-9.1.1.0/bin/jruby -r ./siteconf20160524-3528-jeg3gw.rb extconf.rb
NotImplementedError: C extensions are not supported
    <top> at /home/vagrant/jruby-9.1.1.0/lib/ruby/stdlib/mkmf.rb:1
  require at org/jruby/RubyKernel.java:944
   (root) at /home/vagrant/jruby-9.1.1.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
    <top> at extconf.rb:3

extconf failed, exit code 1

Gem files will remain installed in /home/vagrant/.rvm/gems/ruby-2.3.0/gems/google-protobuf-3.0.0.alpha.5.0.5.1 for inspection.
Results logged to /home/vagrant/.rvm/gems/ruby-2.3.0/extensions/universal-java-1.7/2.3.0/google-protobuf-3.0.0.alpha.5.0.5.1/gem_make.out
bug

Most helpful comment

I'm a JRuby team member offering any assistance to get this gem updated and released for JRuby users. Let me know what I can do to help resolve this.

JRuby is actively maintained and in use by hundreds of organizations around the world. Feel free to stop by our Matrix channel (#jruby) or IRC (#jruby on Freenode) or Gitter (jruby/jruby) if you have questions or need assistance.

All 73 comments

@blowmage, is any EAT or temporary solution for this bug fix? I am stuck on this bug for week.

@genghuiluo I think @xfxyjwf might be better to able to answer than me.

The 3.0.0 release notes say:

We have added proto3 support for Ruby via a native C/JRuby extension.

Will this be reflected in the ruby gem as well?

JRuby is supported when running from source, but I am not 100% the gem is built properly to allow this. Can someone who knows more about JRuby look at our Rakefile and let us know what we need to change about it to support JRuby?

https://github.com/google/protobuf/blob/master/ruby/Rakefile

I have a small amount of experience making gems, but no experience making JRuby binary gems; it's kind of unnecessary in a way -- it is possible to just package the JAR in the normal gem, then use it if you're running inside JRuby. Quite a few gems work this way.

All that said, I'm using JRuby, and I'd like to use Protocol Buffers, so I'm eager to see this resolved. So I'm willing to help where I can, but I guess I need to know more about the build process you're using to generate all the binary gems you're distributing.

+1

$ ruby -v
jruby 9.1.5.0 (2.3.1) 2016-09-07 036ce39 Java HotSpot(TM) 64-Bit Server VM 24.45-b08 on 1.7.0_45-b18 +jit [darwin-x86_64]
$ gem install google-protobuf
Fetching: google-protobuf-3.0.2.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing google-protobuf:
    ERROR: Failed to build gem native extension.

    current directory: /usr/local/rvm/gems/jruby-9.1.5.0@player/gems/google-protobuf-3.0.2/ext/google/protobuf_c
/usr/local/rvm/rubies/jruby-9.1.5.0/bin/jruby -r ./siteconf20160915-70672-ue0ydp.rb extconf.rb
creating Makefile

current directory: /usr/local/rvm/gems/jruby-9.1.5.0@player/gems/google-protobuf-3.0.2/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: /usr/local/rvm/gems/jruby-9.1.5.0@player/gems/google-protobuf-3.0.2/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target `/usr/local/rvm/rubies/jruby-9.1.5.0/lib/ruby/include/ruby/ruby.h', needed by `protobuf.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /usr/local/rvm/gems/jruby-9.1.5.0@player/gems/google-protobuf-3.0.2 for inspection.
Results logged to /usr/local/rvm/gems/jruby-9.1.5.0@player/extensions/universal-java-1.7/2.3.0/google-protobuf-3.0.2/gem_make.out
$ cat /usr/local/rvm/gems/jruby-9.1.5.0@player/extensions/universal-java-1.7/2.3.0/google-protobuf-3.0.2/gem_make.out
current directory: /usr/local/rvm/gems/jruby-9.1.5.0@player/gems/google-protobuf-3.0.2/ext/google/protobuf_c
/usr/local/rvm/rubies/jruby-9.1.5.0/bin/jruby -r ./siteconf20160915-70672-ue0ydp.rb extconf.rb
creating Makefile

current directory: /usr/local/rvm/gems/jruby-9.1.5.0@player/gems/google-protobuf-3.0.2/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: /usr/local/rvm/gems/jruby-9.1.5.0@player/gems/google-protobuf-3.0.2/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target `/usr/local/rvm/rubies/jruby-9.1.5.0/lib/ruby/include/ruby/ruby.h', needed by `protobuf.o'.  Stop.

make failed, exit code 2

+1

Same error installing protobuf gem on OSX

Could the problem here just be that a protobuf with the "java" platform suffix hasn't been uploaded to rubygems? (e.g., google-protobuf--java.gem)

When building the package, the rake clobber_package gem suggestion builds the google-protobuf gem, but it seems to be missing the "java" platform suffix, which, to my knowledge, the other platform specific gems with pre-compiled code use, in order for gem to bring down the proper package on install.

I'm not sure exactly how to change the Rakefile to do this, (I think that normally the java extension task for rake does this sort of thing automatically) but my guess is that building only with maven is preventing the proper naming from happening?

@apolcyn - simple patch in #2199 locally creates the .gem file with both the correct suffix and the correct metadata to identify itself as having platform java. Are other changes required to facilitate the publishing process from within Google?

With both #2199 and #2254 having merged, and thus Travis and Jenkins are both happy at the same time, is there anything else blocking the release of v3.1.0 to RubyGems?

CC: @TeBoring, @xfxyjwf

@haberman

@haberman

@apolcyn

Please release google-protobuf-3.1.0-java.gem, the currently released gem (3.1.0) is completely useless on JRuby. The PR merged in master is correct.

(Here's a copy of the java gem built from master.)

I'm not familiar with ruby or jruby. Do we need to do a jruby specific release, or just another normal ruby gem release will fix the issue?

3.1.0 is already out. The next release will likely be 3.2.0 this quarter.

Yes, just a JRuby 3.1.0 gem. It's possible to release just a 3.1.0 interterm JRuby -java gem, each platform's gem is separate, this will fix it without requiring a full release.

On the box of whomever has rubygem write credentials:

curl -LO https://gist.github.com/steakknife/0773a917ffc52631d8f42e7ad330a6d5/raw/30c43722610c50a88581fe6f105b65e7deed2027/google-protobuf-3.1.0-java.gem
# or build it yourself: cd ruby; rake build && gem build *.gemspec
gem push google-protobuf-3.1.0-java.gem

I don't know who has the credentials - @haberman perhaps?
Less awesome workarounds include using the git option in your Gemfile and / or vendoring the gem you compile yourself.

@JasonLunn That won't scale because the git repo doesn't include the jar, bundler can't build it from source without all files present. It would be better for everyone if this were released correctly.

@haberman JRuby Rakefile #2320

I went ahead and pushed a JRuby gem as version 3.1.0.0.pre. Frankly I know little about Ruby so I am not sure if the gem is sane or not; if the JRuby users on this thread could test it out and let me know if it works I would really appreciate it. If it looks OK then I'll push it as 3.1.0.

Works for me, in that I can get the gem from RubyGems and it appears well formed after installation. I can't yet install the google-cloud-data gem, but that appears to now be gprc's issue (probably of the same flavor) rather than google-protobuf.

Thanks, Jason. I think I'll just wait a few more days to see if anyone else has feedback and then push the gem as 3.1.0. I'll keep an eye on the gRPC issue, too (https://github.com/grpc/grpc/issues/6705).

@acozzette - any progress here? It has been several months and there is still not a 3.1.0 gem for the java platform published on ruby-gems

Hi Jason, sorry about that, I haven't heard anything from anyone else so I assume the 3.1.0.0.pre version must be OK. I'll go ahead and push that one as 3.1.0 then.

I've just now pushed the 3.1.0 gem for JRuby.

Works for me! Able to install under both 1.7.26 and 9.1.7.0.

@blowmage - work for you?

I'm good with closing this as fixed if you are, @blowmage

@acozzette - gems with a platform of java haven't been released for either of the last two releases (3.2.0 or 3.2.1pre) which suggests that there is a release process script or document somewhere on the Google side that hasn't been updated to reflect the newly supported platform. Is this something you can address?

@JasonLunn Sorry about that; you're right, last time I just did the JRuby gem as a one-off thing and didn't incorporate it into our ongoing release routine. I just now built and pushed a JRuby gem with version 3.2.0.1 and I'll try to make sure we release a JRuby gem on all new releases in the future.

Thanks much.

@acozzette - We're still in the same place we were at the beginning of the year - the last release to include a java platform build was 3.3.0 - no java builds appear for 3.4.0, 3.4.0.1, 3.4.0.2, 3.4.1, 3.4.1.1, or 3.5.0. How can we solve this issue for good?

@JasonLunn Sorry about that, I just pushed a 3.5.0.pre version for JRuby, do you want to give that a try and let me know if it works for you? I think the problem we're running into is that we accepted the JRuby support from an external contributor but we (the protobuf team) don't really have the bandwidth to support it much on our own. There seem to be some tests failing for JRuby and we would probably want to get those fixed before we publish more releases.

@acozzette - Thanks for the quick response. Looks good on my end, though I don't believe that it will satisfy dependencies from other gems on 3.5.0 until the .pre tag is removed.

Can you point me at the offending test failures?

Running rake test produces a handful errors for me with JRuby whereas using the default Ruby works fine. Though I have little experience with Ruby and so it's possible I'm just doing something wrong.

It is also unable to install protobuf on Objective-c . This is the error :
[!] /bin/bash -c
set -e
if [ ! -f bin/protoc ]; then
cd ../..
# This will build protoc from the Protobuf submodule of gRPC, and put it in
# ../../bins/opt/protobuf.
#
# TODO(jcanizales): Make won't build protoc from sources if one's locally installed, which
# _we do not want_. Find a way for this to always build from source.
make grpc_objective_c_plugin
cd -
else
mv bin/protoc .
mv include/google .
fi

[AUTOGEN] Preparing protobuf
/bin/sh: autoreconf: command not found
make: * [third_party/protobuf/configure] Error 127

Have you found the solution to the problem ? @pchaganti

just tried on jruby and Mac, this is still not working it seems.

@xfxyjwf could you please also reopen this issue?

Hi @acozzette, any plans to do a java/jruby release for the 3.6 version? :)

Let me give it a try for the 3.7 release. The problem we keep running into is that we don't have anyone on the protobuf team who is very familiar with JRuby, but I'll ask for help on this issue if I run into any problems.

@acozzette - Any luck getting 3.7 released? On a related note - is your team looking to add someone to take on JRuby responsibilities?

So for users watching this. We @ cucumber have found a long-winded way of solving this. But it's tricky.

For Ruby 2.2 - Ruby 2.5 and for JRuby 9.2 use the gem version 3.2.0.2 - This works and builds correctly.

For Ruby 2.6 use any gem version ~> 3.7

For Ruby 2.7dev use anything 3.7.1+ (Although YMMV)

Obviously it would be great if we didn't need to do this. But it works... just.

@acozzette - any update?

@JasonLunn Sorry for taking so long to respond. The 3.8 release is in progress now so let me try and publish a JRuby gem for 3.8. We've been automating more of the process of releasing build artifacts so if we can just get a script set up for JRuby then it will hopefully be easy to keep doing for future releases.

@acozzette can I request you make the 3.8 version work for Ruby 2.2+ as well as JRuby. As the gemspec states it should work for all of these versions. It would allow us to remove a few of our monkeypatches to make the gem work in a variety of environments.

Alternatively, if you only want to support say 2.4+ that is also fine, but just add it to the gemspec.

@luke-hill Ruby 2.3 is the oldest version we have test coverage for, so I updated the gemspec in #6107 to require 2.3 or higher.

@JasonLunn I'd like to update this build script to create a JRuby gem in addition to the others. Do you have any advice on how to do this? I found that if I do rvm use jruby then ruby -v says I'm using JRuby but when I do bundle install && bundle exec rake gem:native, RUBY_PLATFORM ends up being x86_64-linux-gnu and not java as I would expect.

@acozzette - are you invoking the script referenced above directly, or is it being called via the rest of the build script infrastructure? What's the output of bundle install?

Actually for now I am not trying to run the script directly, because I don't think it is set up to run outside of our CI environment. I'm just trying to run the important commands manually just to get an idea of how it should work. Here is the output from bundle install after I've done rvm use jruby:

$ bundle install
Ignoring executable-hooks-1.4.2 because its extensions are not built.  Try: gem pristine executable-hooks --version 1.4.2
Ignoring gem-wrappers-1.4.0 because its extensions are not built.  Try: gem pristine gem-wrappers --version 1.4.0
Ignoring jruby-launcher-1.1.4-java because its extensions are not built.  Try: gem pristine jruby-launcher --version 1.1.4
Fetching gem metadata from https://rubygems.org/.............
Fetching version metadata from https://rubygems.org/.
Resolving dependencies...
Ignoring executable-hooks-1.4.2 because its extensions are not built.  Try: gem pristine executable-hooks --version 1.4.2
Ignoring gem-wrappers-1.4.0 because its extensions are not built.  Try: gem pristine gem-wrappers --version 1.4.0
Ignoring jruby-launcher-1.1.4-java because its extensions are not built.  Try: gem pristine jruby-launcher --version 1.1.4
Error loading RubyGems plugin "/home/acozzette/.rvm/gems/jruby-9.1.13.0@global/gems/executable-hooks-1.4.2/lib/rubygems_plugin.rb": cannot load such file -- executable-hooks/wrapper (LoadError)
Error loading RubyGems plugin "/home/acozzette/.rvm/gems/jruby-9.1.13.0@global/gems/gem-wrappers-1.4.0/lib/rubygems_plugin.rb": cannot load such file -- gem-wrappers (LoadError)
Using rake 12.3.2
Using google-protobuf 3.8.0.rc.1 from source at `.`
Using rake-compiler-dock 0.6.3
Using power_assert 1.1.4
Using rubygems-tasks 0.2.4
Using bundler 1.15.1
Using rake-compiler 0.9.9
Using test-unit 3.3.3
Bundle complete! 5 Gemfile dependencies, 8 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

I see some errors in there so maybe that would explain the problem.

The output suggests that the interpreter is still JRuby at the point that bundle is running, so we're off to a good start.

For a sanity check, does the output of which rake and gem which rake both look like paths inside the jruby subdirectory of ~/.rvm/... If not, there are hints in bundle's output on how to get the wrappers fixed.

Yes, those seem to show paths inside the jruby subdirectory:

$ which rake
/home/acozzette/.rvm/gems/jruby-9.1.13.0/bin/rake
$ gem which rake
/home/acozzette/.rvm/rubies/jruby-9.1.13.0/lib/ruby/stdlib/rake.rb

Do you get the same output when you prefix those two commands with bundle exec?

Yes, I am getting the same output if I prefix those with bundle exec.

What's the caller stack look like at the point where RUBY_PLATFORM has the wrong value? It sounds like you're getting past the first couple of layers of ruby interpreters invoking each other correctly, but my best guess is that at some point another script is telling rvm to pick another interpreter or invoking the system ruby explicitly.

So the ruby_version change is great and will in theory fix all of our builds for 2.3 onwards (2.2 to be honest we're getting rid of soon anyways so I'm not worried about this).

Qu1) Whilst the min version is 2.3, does this "actually work" on 2.3?
Qu2) What is the JRuby support like (We previously had issues with this too)

For Ruby 2.2 - Ruby 2.5 and for JRuby 9.2 use the gem version 3.2.0.2 - This works and builds correctly.

Currently google-protobuf 3.7+ is not compatible with latest JRuby (9.2), however it introduces proto2 syntax for ruby - which is quite important feature. Any chances to improve that in future?

I have tried:
jruby 9.1.17.0 (2.3.3)
jruby 9.2.7.0 (2.5.3)
with:
google-protobuf-3.7.1
google-protobuf-3.8.0.rc.1

I always get:
ERROR: Failed to build gem native extension

I know that 3.8 should in theory work for Ruby 2.3 - 2.6, as for JRuby 9.2 I was under the impression it would work with 3.8 but I've not got round to testing it (Mainly because 3.8 hasn't been released as stable yet)

@JasonLunn Sorry I have not had a chance to work much more on this in the past few weeks. Is there any chance you could give me some instructions on how to do this using Docker? I was thinking if we could do this in Docker then it might make things much easier to do in a reproducible way.

@luke-hill I have not worked much on Ruby myself but I do know that our CI setup runs all the tests on Ruby 2.3. We don't have any test coverage of JRuby or anyone specifically working on that, though, so there may be some issues with using JRuby.

@acozzette is there any way to look at the CI setup or results? If I click on any of the _build:passing_ badges, I have to log in.

Also @acozzette as this is a poly-repo, is there any update on when a stable 3.8 will be cut. I'm guessing all the languages do it simultaneously. Just the rc1 release has been out for a while. Cut 3.8 and if any issues crop up fix them in a bug release. That's my 2cents.

@mvz Sorry about that, I'm not really sure how it's configured but I think you're right that those CI results are not visible for now.

@luke-hill 3.8 has now been released.

I have managed to build jruby version of gem using Rakefile after some tweaks.
I guess bigger blocker is the outdated Java wrapper code which fail tests:

https://github.com/protocolbuffers/protobuf/tree/master/ruby/src/main/java/com/google/protobuf/jruby

rake test

protobuf/ruby/tests/basic.rb:87: warning: Ambiguous first argument; make sure.
NoMethodError: undefined method `add_file' for #

at /mnt/repos/protobuf/ruby/tests/google/protobuf/wrappers_pb.rb:7
build at com/google/protobuf/jruby/RubyDescriptorPool.java:81

I'm a JRuby team member offering any assistance to get this gem updated and released for JRuby users. Let me know what I can do to help resolve this.

JRuby is actively maintained and in use by hundreds of organizations around the world. Feel free to stop by our Matrix channel (#jruby) or IRC (#jruby on Freenode) or Gitter (jruby/jruby) if you have questions or need assistance.

@headius the latest version of this gem (Or at least the 3.8.x series), have proper versioned support (So work correctly for everything aside from JRuby that is advertised). If you start there and pull down the project and try fixing it up, it would be a good starting place.

I have changed jobs and so I am no longer in a JRuby-shop full time. Despite that, I'm interested and willing to help solve this again, but I don't think it is unreasonable to ask for more investment from the maintainers. If the community provides a second fix for this issue, there should be a commitment from Google to support JRuby on this gem going forward. Ideally, this would come in the form of:

  1. Making execution of unit tests under JRuby a requirement for future branches to get merged
  2. Integrating JRuby releases into the standard release process so that new JRuby builds are built every release without fail

Is anyone aware of any version >= 3.8 that has a published version working with JRuby?

$ jruby --version
jruby 9.2.8.0 (2.5.3) 2019-08-12 a1ac7ff OpenJDK 64-Bit Server VM 25.222-bga on 1.8.0_222-ga +jit [linux-x86_64]

3.2.0.2 works fine, but 3.8 and 3.11 both fail to install:

$ jgem install google-protobuf -v '3.11.0'
Building native extensions. This could take a while...
ERROR:  Error installing google-protobuf:
        ERROR: Failed to build gem native extension.

    current directory: .nix-gems/gems/google-protobuf-3.11.0/ext/google/protobuf_c
/nix/store/mn24a8n3bfwf9m0znkisaxn76nkrpmd8-jruby-9.2.8.0/bin/jruby -r ./siteconf20191128-6268-68irf2.rb extconf.rb
creating Makefile

current directory: .nix-gems/gems/google-protobuf-3.11.0/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: .nix-gems/gems/google-protobuf-3.11.0/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target '/nix/store/mn24a8n3bfwf9m0znkisaxn76nkrpmd8-jruby-9.2.8.0/lib/ruby/include/ruby/ruby.h', needed by 'protobuf.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in .nix-gems/gems/google-protobuf-3.11.0 for inspection.
Results logged to .nix-gems/extensions/universal-java-1.8/2.5.0/google-protobuf-3.11.0/gem_make.out

At cucumber we use 3.2.0.2 which works "partially" with JRuby. But other than that youre very much on your own sorry :(

We've removed JRuby from our accepted build matrix also - https://github.com/cucumber/cucumber-ruby/blob/master/.circleci/config.yml - So we just don't bother with it any more.

We've removed JRuby from our accepted build matrix also - https://github.com/cucumber/cucumber-ruby/blob/master/.circleci/config.yml - So we just don't bother with it any more.

That's really unfortunate.

Hello all; I wanted to try jruby with protobuf and stumbled upon this issue.

I have managed to build jruby version of gem using Rakefile after some tweaks.
I guess bigger blocker is the outdated Java wrapper code which fail tests:

Just for anyone interested - after jumping through hoops I managed to install locally compiled gem, but instantly got the same result just to see that the wrapper was kinda abandoned 🙈

Additionally it seems release for jruby wasn't pushed to rubygems since version 3.5.0pre? that is why recent version will fail while trying to build native c extension, but as said it's not the biggest problem here

so if you're here for a quick solution regarding using proto3 with jruby. Tl;dr: there is no quick solution 😅

Perhaps someone could try to restore the old JRuby implementation and we can go from there? I would like to help but we're swamped with JRuby release 9.2.10 work right now, and I know nothing about how this gem is structured.

If I understood the issues I'm watching correctly, cucumber switched to the pure ruby implementation https://github.com/ruby-protobuf/protobuf, so this should no longer be a problem for them. Of course, that doesn't change the status of this issue, but perhaps it can provide a way out to others facing the same issues.

Was this page helpful?
0 / 5 - 0 ratings