Giter Club home page Giter Club logo

Comments (12)

virtualstaticvoid avatar virtualstaticvoid commented on May 28, 2024 1

Yip, it did include tcl/tk, but if I run the capabilities() function I see that it isn't available:

> capabilities()
       jpeg         png        tiff       tcltk         X11        aqua 
       TRUE        TRUE        TRUE       FALSE       FALSE       FALSE 
   http/ftp     sockets      libxml        fifo      cledit       iconv 
       TRUE        TRUE        TRUE        TRUE       FALSE        TRUE 
        NLS     profmem       cairo         ICU long.double     libcurl 
       TRUE        TRUE        TRUE       FALSE        TRUE        TRUE 

I'll investigate this further.

from heroku-buildpack-r.

virtualstaticvoid avatar virtualstaticvoid commented on May 28, 2024

from heroku-buildpack-r.

brenowca avatar brenowca commented on May 28, 2024

The problem is when the app runs and tries to use the packages.

To solve the gfortran missing reference I just added these lines to the compile file, just before it runs the init.r:
mkdir -p ~/.R
echo "F77=/app/.apt/usr/bin/gfortran-4.8">> ~/.R/Makevars
After it was solved solved I found out that the R binaries used do not provide tcl/tk support. It is usually built when R is compiled and it is a major component of geoR. You know how I can add support to it without having to recompile everything myself?

Should we close this issue and open another one for this tcl/tk problem?

Thank you for the fast reply :)

from heroku-buildpack-r.

virtualstaticvoid avatar virtualstaticvoid commented on May 28, 2024

Also, just to confirm, did this work before? There have been recent changes to the buildpack compile process, so I'm hoping I haven't broken something.

from heroku-buildpack-r.

virtualstaticvoid avatar virtualstaticvoid commented on May 28, 2024

In the meantime, I've created a geoR test application to try replicate your issue, however I'm getting a different issue:

Compile log during git push heroku ...:

$ ./install 
...
Initialized empty Git repository in /tmp/tmp.uy6FNBBbx6/.git/
[master (root-commit) 04c4202] initial
 3 files changed, 286 insertions(+)
 create mode 100755 init.r
 create mode 100755 install
 create mode 100644 prog.r
Creating app... done, ⬢ fathomless-journey-23462, stack is cedar-14
Setting buildpack to https://github.com/virtualstaticvoid/heroku-buildpack-r.git#cedar-14... done
https://fathomless-journey-23462.herokuapp.com/ | https://git.heroku.com/fathomless-journey-23462.git
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 2.88 KiB | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Fetching set buildpack https://github.com/virtualstaticvoid/heroku-buildpack-r.git#cedar-14... done
remote: -----> R app detected
remote:        Vendoring R 3.2.4 for cedar-14 stack (20160322-0811)
remote:        Downloading and unpacking R binaries (http://heroku-buildpack-r.s3.amazonaws.com/cedar-14/R-3.2.4-binaries-20160322-0811.tar.gz)
remote:        Executing init.r script
remote: 
remote: =====> init.r Starting...
remote: also installing the dependencies ‘RandomFieldsUtils’, ‘sp’, ‘splancs’, ‘RandomFields’, ‘scatterplot3d’, ‘geoRglm’
remote: 
remote: trying URL 'http://cran.revolutionanalytics.com/src/contrib/RandomFieldsUtils_0.2.1.1.tar.gz'
remote: Content type 'application/octet-stream' length 116236 bytes (113 KB)
remote: ==================================================
remote: downloaded 113 KB
remote: 
remote: trying URL 'http://cran.revolutionanalytics.com/src/contrib/sp_1.2-3.tar.gz'
remote: Content type 'application/octet-stream' length 1179462 bytes (1.1 MB)
remote: ==================================================
remote: downloaded 1.1 MB
remote: 
remote: trying URL 'http://cran.revolutionanalytics.com/src/contrib/splancs_2.01-38.tar.gz'
remote: Content type 'application/octet-stream' length 99248 bytes (96 KB)
remote: ==================================================
remote: downloaded 96 KB
remote: 
remote: trying URL 'http://cran.revolutionanalytics.com/src/contrib/RandomFields_3.1.16.tar.gz'
remote: Content type 'application/octet-stream' length 1798789 bytes (1.7 MB)
remote: ==================================================
remote: downloaded 1.7 MB
remote: 
remote: trying URL 'http://cran.revolutionanalytics.com/src/contrib/scatterplot3d_0.3-37.tar.gz'
remote: Content type 'application/octet-stream' length 585767 bytes (572 KB)
remote: ==================================================
remote: downloaded 572 KB
remote: 
remote: trying URL 'http://cran.revolutionanalytics.com/src/contrib/geoRglm_0.9-8.tar.gz'
remote: Content type 'application/octet-stream' length 201150 bytes (196 KB)
remote: ==================================================
remote: downloaded 196 KB
remote: 
remote: trying URL 'http://cran.revolutionanalytics.com/src/contrib/geoR_1.7-5.2.tar.gz'
remote: Content type 'application/octet-stream' length 421612 bytes (411 KB)
remote: ==================================================
remote: downloaded 411 KB
remote: 
remote: * installing *source* package ‘RandomFieldsUtils’ ...
remote: ** package ‘RandomFieldsUtils’ successfully unpacked and MD5 sums checked
remote: configure: creating ./config.status
remote: config.status: creating src/Makevars
remote: PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS)
remote: PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
remote: ** libs
remote: g++ -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include   -fopenmp -fpic  -g -O2 -flto -c RFoptions.cc -o RFoptions.o
remote: g++ -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include   -fopenmp -fpic  -g -O2 -flto -c R_init.cc -o R_init.o
remote: gfortran   -fpic  -g -O2 -flto -c bckslvmodified.f -o bckslvmodified.o
remote: gfortran   -fpic  -g -O2 -flto -c cholmodified.f -o cholmodified.o
remote: g++ -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include   -fopenmp -fpic  -g -O2 -flto -c kleinkram.cc -o kleinkram.o
remote: g++ -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include   -fopenmp -fpic  -g -O2 -flto -c options.cc -o options.o
remote: g++ -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include   -fopenmp -fpic  -g -O2 -flto -c solve.cc -o solve.o
remote: gfortran   -fpic  -g -O2 -flto -c spamown.f -o spamown.o
remote: g++ -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include   -fopenmp -fpic  -g -O2 -flto -c sqrt.cc -o sqrt.o
remote: g++ -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include   -fopenmp -fpic  -g -O2 -flto -c struve.cc -o struve.o
remote: g++ -shared -L/app/vendor/R/lib/R/lib -L/app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/app/.apt/usr/lib/libblas -L/app/.apt/usr/lib/lapack -o RandomFieldsUtils.so RFoptions.o R_init.o bckslvmodified.o cholmodified.o kleinkram.o options.o solve.o spamown.o sqrt.o struve.o -fopenmp -llapack -lblas -L/app/.apt/usr/lib/gcc/x86_64-linux-gnu -L/app/.apt/usr/lib/gcc -lgfortran -lm -lquadmath -L/app/.apt/usr/lib/gcc/x86_64-linux-gnu -L/app/.apt/usr/lib/gcc -lgfortran -lm -lquadmath -L/app/vendor/R/lib/R/lib -lR
remote: /usr/bin/ld: /app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8/libgomp.a(env.o): relocation R_X86_64_32 against `gomp_global_icv' can not be used when making a shared object; recompile with -fPIC
remote: /app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8/libgomp.a: error adding symbols: Bad value
remote: collect2: error: ld returned 1 exit status
remote: make: *** [RandomFieldsUtils.so] Error 1
remote: ERROR: compilation failed for package ‘RandomFieldsUtils’
remote: * removing ‘/app/vendor/R/lib/R/library/RandomFieldsUtils’
remote: * installing *source* package ‘sp’ ...
remote: ** package ‘sp’ successfully unpacked and MD5 sums checked
remote: ** libs
remote: gcc -std=gnu99 -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include    -fpic  -g -O2 -flto -c Rcentroid.c -o Rcentroid.o
remote: gcc -std=gnu99 -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include    -fpic  -g -O2 -flto -c gcdist.c -o gcdist.o
remote: gcc -std=gnu99 -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include    -fpic  -g -O2 -flto -c init.c -o init.o
remote: gcc -std=gnu99 -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include    -fpic  -g -O2 -flto -c pip.c -o pip.o
remote: gcc -std=gnu99 -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include    -fpic  -g -O2 -flto -c pip2.c -o pip2.o
remote: gcc -std=gnu99 -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include    -fpic  -g -O2 -flto -c sp_xports.c -o sp_xports.o
remote: gcc -std=gnu99 -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include    -fpic  -g -O2 -flto -c surfaceArea.c -o surfaceArea.o
remote: gcc -std=gnu99 -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include    -fpic  -g -O2 -flto -c zerodist.c -o zerodist.o
remote: gcc -std=gnu99 -shared -g -O2 -flto -fpic -L/app/vendor/R/lib/R/lib -L/app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/app/.apt/usr/lib/libblas -L/app/.apt/usr/lib/lapack -o sp.so Rcentroid.o gcdist.o init.o pip.o pip2.o sp_xports.o surfaceArea.o zerodist.o -L/app/.apt/usr/lib -L/app/.apt/usr/lib/x86_64-linux-gnu -L/app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/app/.apt/usr/lib/libblas -L/app/.apt/usr/lib/lapack -L/app/vendor/R/lib/R/lib -lR
remote: installing to /app/vendor/R/lib/R/library/sp/libs
remote: ** R
remote: ** data
remote: ** demo
remote: ** inst
remote: ** preparing package for lazy loading
remote: ** help
remote: *** installing help indices
remote: ** building package indices
remote: ** installing vignettes
remote: ** testing if installed package can be loaded
remote: * DONE (sp)
remote: * installing *source* package ‘scatterplot3d’ ...
remote: ** package ‘scatterplot3d’ successfully unpacked and MD5 sums checked
remote: ** R
remote: ** inst
remote: ** preparing package for lazy loading
remote: ** help
remote: *** installing help indices
remote: ** building package indices
remote: ** installing vignettes
remote: ** testing if installed package can be loaded
remote: * DONE (scatterplot3d)
remote: * installing *source* package ‘splancs’ ...
remote: ** package ‘splancs’ successfully unpacked and MD5 sums checked
remote: ** libs
remote: gfortran   -fpic  -g -O2 -flto -c areapl.f -o areapl.o
remote: gfortran   -fpic  -g -O2 -flto -c cncvwt.f -o cncvwt.o
remote: gfortran   -fpic  -g -O2 -flto -c dokhat.f -o dokhat.o
remote: gfortran   -fpic  -g -O2 -flto -c inpip.f -o inpip.o
remote: gfortran   -fpic  -g -O2 -flto -c ipippa.f -o ipippa.o
remote: gfortran   -fpic  -g -O2 -flto -c iplace.f -o iplace.o
remote: gfortran   -fpic  -g -O2 -flto -c k12hat.f -o k12hat.o
remote: gfortran   -fpic  -g -O2 -flto -c kernel3d.f -o kernel3d.o
remote: gfortran   -fpic  -g -O2 -flto -c khvc.f -o khvc.o
remote: gfortran   -fpic  -g -O2 -flto -c khvmat.f -o khvmat.o
remote: gfortran   -fpic  -g -O2 -flto -c krnnrm.f -o krnnrm.o
remote: gfortran   -fpic  -g -O2 -flto -c krnqne.f -o krnqne.o
remote: gfortran   -fpic  -g -O2 -flto -c krnqrt.f -o krnqrt.o
remote: gfortran   -fpic  -g -O2 -flto -c nndist.f -o nndist.o
remote: gfortran   -fpic  -g -O2 -flto -c plarea.f -o plarea.o
remote: gcc -std=gnu99 -I/app/vendor/R/lib/R/include -DNDEBUG -I/app/.apt/usr/include  -I/usr/local/include    -fpic  -g -O2 -flto -c ptinpoly.c -o ptinpoly.o
remote: gfortran   -fpic  -g -O2 -flto -c sekhat.f -o sekhat.o
remote: gfortran   -fpic  -g -O2 -flto -c sort.f -o sort.o
remote: gfortran   -fpic  -g -O2 -flto -c sort2.f -o sort2.o
remote: gfortran   -fpic  -g -O2 -flto -c stkhat.f -o stkhat.o
remote: gfortran   -fpic  -g -O2 -flto -c stsecal.f -o stsecal.o
remote: gfortran   -fpic  -g -O2 -flto -c tribble.f -o tribble.o
remote: gfortran   -fpic  -g -O2 -flto -c twodimmse.f -o twodimmse.o
remote: gfortran   -fpic  -g -O2 -flto -c weight.f -o weight.o
remote: gcc -std=gnu99 -shared -g -O2 -flto -fpic -L/app/vendor/R/lib/R/lib -L/app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/app/.apt/usr/lib/libblas -L/app/.apt/usr/lib/lapack -o splancs.so areapl.o cncvwt.o dokhat.o inpip.o ipippa.o iplace.o k12hat.o kernel3d.o khvc.o khvmat.o krnnrm.o krnqne.o krnqrt.o nndist.o plarea.o ptinpoly.o sekhat.o sort.o sort2.o stkhat.o stsecal.o tribble.o twodimmse.o weight.o -L/app/.apt/usr/lib -L/app/.apt/usr/lib/x86_64-linux-gnu -L/app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/app/.apt/usr/lib/libblas -L/app/.apt/usr/lib/lapack -L/app/.apt/usr/lib/gcc/x86_64-linux-gnu -L/app/.apt/usr/lib/gcc -lgfortran -lm -lquadmath -L/app/vendor/R/lib/R/lib -lR
remote: installing to /app/vendor/R/lib/R/library/splancs/libs
remote: ** R
remote: ** data
remote: ** inst
remote: ** preparing package for lazy loading
remote: ** help
remote: *** installing help indices
remote: ** building package indices
remote: ** testing if installed package can be loaded
remote: * DONE (splancs)
remote: ERROR: dependency ‘RandomFieldsUtils’ is not available for package ‘RandomFields’
remote: * removing ‘/app/vendor/R/lib/R/library/RandomFields’
remote: ERROR: dependency ‘RandomFields’ is not available for package ‘geoR’
remote: * removing ‘/app/vendor/R/lib/R/library/geoR’
remote: ERROR: dependency ‘geoR’ is not available for package ‘geoRglm’
remote: * removing ‘/app/vendor/R/lib/R/library/geoRglm’
remote: 
remote: The downloaded source packages are in
remote:     ‘/tmp/RtmpVIyK1o/downloaded_packages’
remote: Updating HTML index of packages in '.Library'
remote: Making 'packages.html' ... done
remote: Warning messages:
remote: 1: In install.packages(p, dependencies = TRUE) :
remote:   installation of package ‘RandomFieldsUtils’ had non-zero exit status
remote: 2: In install.packages(p, dependencies = TRUE) :
remote:   installation of package ‘RandomFields’ had non-zero exit status
remote: 3: In install.packages(p, dependencies = TRUE) :
remote:   installation of package ‘geoR’ had non-zero exit status
remote: 4: In install.packages(p, dependencies = TRUE) :
remote:   installation of package ‘geoRglm’ had non-zero exit status
remote: 
...omitted the rest of the log

The problem seems to start with the RandomFieldsUtils package failing to build:

remote: /usr/bin/ld: /app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8/libgomp.a(env.o): relocation R_X86_64_32 against `gomp_global_icv' can not be used when making a shared object; recompile with -fPIC
remote: /app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8/libgomp.a: error adding symbols: Bad value
remote: collect2: error: ld returned 1 exit status
remote: make: *** [RandomFieldsUtils.so] Error 1

I can't replicate the gfortran issue though.

from heroku-buildpack-r.

virtualstaticvoid avatar virtualstaticvoid commented on May 28, 2024

On the question of tcl/tk, R is compiled with this included. See the build_r#L134 file in the build project.

I'm going to check whether the 20151120-0000 build included this though ~ need to find the build log.

from heroku-buildpack-r.

ericsturman avatar ericsturman commented on May 28, 2024

I have noticed that a project that pushes to cloud foundry just fine as of build e366cc3 now fails immediately during the buildpack compile phase. Issues seem to start at build 1f9a873

logs:

2016-07-18T13:10:43.16-0500 [STG/22]     OUT -----> Downloaded app package (8.7M)
2016-07-18T13:10:48.25-0500 [STG/22]     OUT -----> Downloaded app buildpack cache (133M)
2016-07-18T13:10:48.43-0500 [STG/0]      OUT Staging failed: Buildpack compilation step failed
2016-07-18T13:10:48.43-0500 [STG/0]      ERR 
2016-07-18T13:10:48.57-0500 [API/0]      ERR encountered error: App staging failed in the buildpack compile phase

from heroku-buildpack-r.

brenowca avatar brenowca commented on May 28, 2024

Thank you very much for your time :)

It is weird you can't replicate the gfortran problem, but it's ok. It worked fine after I inserted the lines I mentioned.

I didn't get this error you showed with the RandomForest package, but I am using the compile file from this commit e366cc3

https://github.com/virtualstaticvoid/heroku-buildpack-r/blob/e366cc37c8625196fbf349f6f6eaac227981db04/bin/compile

I have no idea why tcl/tk is not available though

from heroku-buildpack-r.

virtualstaticvoid avatar virtualstaticvoid commented on May 28, 2024

I've figured out the tcl/tk issue and fixed it. There was an issue resolving tclConfig.sh and tkConfig.sh during the build process. It's fixed in the heroku-buildpack-r-build project.

I'll do some further tests, and then make a new build of R 3.3.1 to include the fix.

from heroku-buildpack-r.

brenowca avatar brenowca commented on May 28, 2024

That is awesome!
Could you rebuild the R 3.2.2 too, please?

Thank you :)

from heroku-buildpack-r.

virtualstaticvoid avatar virtualstaticvoid commented on May 28, 2024

Hi @BrenoCarvalho

I've created the builds as requested. You can use the cedar-14-refresh branch to give it a test to confirm.

Also #75 pull request, which I'll merge once testing is complete.

from heroku-buildpack-r.

virtualstaticvoid avatar virtualstaticvoid commented on May 28, 2024

I've merged #75 which fixes this.

from heroku-buildpack-r.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.