building renjin-release

20 views
Skip to first unread message

Per Nyfelt

unread,
Aug 15, 2020, 10:30:09 AM8/15/20
to Renjin
Hi,

Is the renjin-release project what we talked about yesterday (sure looks like it)?

I tried to build it. Maybe this is bit early but perhaps some of the feed-back is useful...

This is what i did:

Cloning the repository failed on the links to other repos (git 2.25.1 refused to honor them) so i tried this work around:
1. I cloned the renjin-gradle-plugin and created a symlink called gradle-plugin in renjin-release
2. Cloned the renjin-libstdcxx and made a symlink called libstdc++
3. created a symlink from renjin called renjin

cd tools && ./gradlew setupPackages

Works fine!

Tried to build 
cd packages && ./gradlew cran:ada:test

But this failed:

Configuration on demand is an incubating feature.


FAILURE
: Build failed with an exception.


* What went wrong:
Could not determine the dependencies of task ':cran:rpart:compileGimple'.
> Could not create task ':cran:rpart:make'.
   
> Could not create task of type 'MakeTask'.
     
> Could not get unknown property 'renjinHomeDir' for project ':cran:rpart' of type org.gradle.api.Project.

I edited packages/gradle.properties and added renjinHomeDir pointing to the renjin repo
I also the gccBridgePlugin value must also be changed. It seems to point to the gcc-bridge in the renjin repo but there is no bridge.so there so I guess this is meant to point to the libstc++ project?

When trying to build the libstdc++ process i realized that it needs gcc 4.7 so I need to set up a vagrant thing to be able to build that similar to what we do when building renjin. This is where i am at right now...

Regards,
Per 



Bertram, Alexander

unread,
Aug 15, 2020, 11:10:29 AM8/15/20
to renji...@googlegroups.com
Yes, exactly. I'm still working on getting it to build.

Note that you don't need to create the symlinks manually, you can run:

  git submodule update --init --recursive

To checkout all of the submodules. I'll add this to the readme as well.

I've also updated the README to document the renjinHomeDir property:

Note that there is a pending PR to update the GCC dependency to 4.8, but I want to get the build working first before merging so we can verify that it doesn't break package compilation.

My focus right now is getting the GitHub Test Action to run:

There seems to be some missing reference to the maven central repository....
I've opened this issue for further discussion:

Add any problems to this ticket and we'll see if we can get the basic build running...

Alex






--
You received this message because you are subscribed to the Google Groups "Renjin" group.
To unsubscribe from this group and stop receiving emails from it, send an email to renjin-dev+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/renjin-dev/33cae847-0537-4b7b-9242-924feb8cc2c8o%40googlegroups.com.

Per Nyfelt

unread,
Aug 15, 2020, 12:42:14 PM8/15/20
to Renjin
Very nice, that did the trick!

I did the following to make it work:
1. Create a vagrant file in the repo root:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version
VAGRANTFILE_API_VERSION
= "2"

# Override host locale variable
ENV
["LC_ALL"] = "en_US.UTF-8"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

 config
.vm.box = "ubuntu/xenial64"
 config
.vm.provision :shell, inline: "apt-get update && apt-get install openjdk-8-jdk maven make gcc-4.7 gcc-4.7-plugin-dev gfortran-4.7 g++-4.7 gcc-4.7.multilib g++-4.7-multilib unzip libz-dev -y"
 config
.vm.synced_folder ".", "/home/ubuntu/renjin-release"
 config
.vm.synced_folder "~/.m2", "/home/vagrant/.m2"

 config
.vm.provider "virtualbox" do |v|
 v
.memory = 4096
 v
.cpus = 2
 
end
end


2. Add mavenCentral() to libstdc++ build.gradle (i submitted a pull request for this)
3. build renjin, libstdc++, gradle-plugin (probably not needed but wanted to check that this was working properly)
4. Edit packages/gradle.properties:

gccBridgePlugin=/home/ubuntu/renjin-release/libstdc++/build/bridge.so
renjinHomeDir
=/home/ubuntu/renjin-release/renjin/tools/gnur-installation/src/main/resources


If we assume we build from within vagrant then these setting will work for everyone without changes.

Then I could build and test the digest package sucessfully:

vagrant@ubuntu-xenial:/home/ubuntu/renjin-release/packages$ ./gradlew cran:digest:test
Configuration on demand is an incubating feature.
Ignoring listeners of task graph ready event, as this build (:renjin) has already executed work.


Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings


BUILD SUCCESSFUL
in 3m 6s
70 actionable tasks: 70 executed

Best regards,
Per


To unsubscribe from this group and stop receiving emails from it, send an email to renji...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages