As I said it IS legal to distribute GPL code (just practically technically difficult to package R [code] and Julia together, and not because it’s GPL).
But I want to add one thing on that. If you do compile (to hide code, one reason for some; for speed is another but it doesn’t really apply to Julia, since Julia is compiled already, and packages precompiled fully since 1.9), then the application “as a whole” is under GPL, and you must distribute source code with the app.
In GPLv2 that were the rules, OR provide a written offer to provide the source. For GPLv3 things changed a
bit quite a bit. People often disregard those rules, do not bundle the source code. It might be enough to provide a link to the source code (e.g. on Github?).
If you’re linking to GPL code you got from someone (e.g. open source), it’s still your resonsibility to make sure that link stays up forever, so in practice, if you want to be strict, it means you copy the code to your web server. At that point it might be better to just bundle the source code.
But do you really want to bundle the full source code for even R itself…?
A written offer might be better since it expires in three years. That’s for GPL v2. I think that option is still there in GPL v3, but now it’s limited to noncommercial use, or otherwise a lot more onerous.
There are some R packages with a Julia wrapper, at least this one (and see my Doc/license PR):
There might not be many such R wrapper packages yet (also strictly not needed, as you can always do without use them directly, with RCall).
There are also some Julia packages wrapping Python code (probably a lot more of those, though still limited amount of those using the newer PythonCall.jl, I list these two):
I don’t know if Conda is used a lot in the R world. It’s not the default package manager (neither for Python really, though used a lot), and you can see the Conda files for the dependencies on the relevant packages. Possibly RCall should do the same as PythonCall, use Conda. That simplifies installation, which maybe was your main goal, just to make installation convenient for your users?
For GPLv2 you have the written offer option, limited for three years, but R changed to GPL v3, and then it’s forever basically, or for non-commercial:
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
- a) Convey the object code in, or embodied in, a physical product […]
- b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License[…]
- c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
I think there’s a reason R code is not compiled into apps much, e.g. few games in R… The GPL makes it very hard to hide the source (that’s its point), but by now also very hard to offer it for a limited time (with v3 that R itself changed to from v2). This is not a bug if you’re e.g. Richard Stallman (who started copyleft), then it’s a feature.
I think this is why R package code is distributed in source code form (sometimes also binary?), and compiled in your machine. Nobody dares to just provide binaries. It’s good for science, it should be open, and source always there, or at least available.