SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I tried to upgrade rstudio (0.95.265) but it failed to build. The latest git version (0.96.111) built fine. I thought some one might benefit from the script.
Needs: apache-ant, jdk,
R-2.11.1 built with shared libraries (configure with --enable-R-shlib),
CMake-2.6, Pango-1.14, Boost-1.42, Qt-4.8
Script will download all necessary files that are not mentioned in the 'Needs' section.
Code:
#!/bin/sh
# Generated by Alien's SlackBuild Toolkit: http://slackware.com/~alien/AST
# Copyright 2009, 2010, 2011, 2012 Eric Hameleers, Eindhoven, Netherlands
# Copyright 2012 Leon Brokken <leon.brokken@med.lu.se>
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
# any purpose with or without fee is hereby granted, provided that
# the above copyright notice and this permission notice appear in all
# copies.
#
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
# -----------------------------------------------------------------------------
#
# Slackware SlackBuild script
# ===========================
# By: Leon Brokken <leon.brokken@med.lu.se>
# For: rstudio
# Descr: RStudio is an IDE for R
# URL: http://rstudio.org/
# Needs: apache-ant, openjdk
# R-2.11.1 built with shared libraries (configure with --enable-R-shlib)
# CMake-2.6, Pango-1.14, Boost-1.42, Qt-4.8
# Changelog:
# 0.96.111-1: 02/May/2012 by Leon Brokken <leon.brokken@med.lu.se>
# * Initial build.
#
# Run 'sh rstudio.SlackBuild' to build a Slackware package.
# The package (.tgz) and .txt file as well as build logs are created in /tmp .
# Install it using 'installpkg'.
#
# -----------------------------------------------------------------------------
# Set initial variables:
PRGNAM=rstudio
VERSION=${VERSION:-0.96}
BUILD=${BUILD:-1}
# 'make' can run jobs in parallel for added speed. The number should be higher
# than the number of cores/virtual CPU's in your system:
NUMJOBS=${NUMJOBS:" -j4 "}
# The TAG is a unique identifier for all your Slackware packages.
# Use your initials as the value for TAG for instance.
TAG=${TAG:-_ljs}
# This covers most filenames you'd want as documentation. Change if needed.
DOCS="COPYING README*"
# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)
# Place to build (TMP) package (PKG) and output (OUTPUT) the program:
TMP=${TMP:-/tmp/build}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
# Input URL: https://github.com/rstudio/rstudio/zipball/master
SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.zip"
SRCURL="https://github.com/${PRGNAM}/${PRGNAM}/zipball/master"
##
## --- with a little luck, you won't have to edit below this point --- ##
##
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i486 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
case "$ARCH" in
i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
x86_64) SLKCFLAGS="-O2 -fPIC"
SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
;;
*) SLKCFLAGS="-O2"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
esac
# Exit the script on errors:
set -e
trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR
# Catch unitialized variables:
set -u
P1=${1:-1}
# Save old umask and set to 0022:
_UMASK_=$(umask)
umask 0022
# Create working directories:
mkdir -p $OUTPUT # place for the package to be saved
mkdir -p $TMP/tmp-$PRGNAM # location to build the source
mkdir -p $PKG # place for the package to be built
rm -rf $PKG/* # always erase old package's contents
rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build
rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$PRGNAM.log
# remove old log files
# Source file availability:
if ! [ -f ${SOURCE} ]; then
echo "Source '$(basename ${SOURCE})' not available yet..."
# Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
[ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)"
if [ -f ${SOURCE} ]; then echo "Ah, found it!"; continue; fi
if ! [ "x${SRCURL}" == "x" ]; then
echo "Will download file to $(dirname $SOURCE)"
wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true
if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then
echo "Downloading '$(basename ${SOURCE})' failed... aborting the build."
mv -f "${SOURCE}" "${SOURCE}".FAIL
exit 1
fi
else
echo "File '$(basename ${SOURCE})' not available... aborting the build."
exit 1
fi
fi
if [ "$P1" == "--download" ]; then
echo "Download complete."
exit 0
fi
# --- PACKAGE BUILDING ---
echo "++"
echo "|| $PRGNAM-$VERSION"
echo "++"
# Explode the package framework:
if [ -f $SRCDIR/_$PRGNAM.tar.gz ]; then
cd $PKG
explodepkg $SRCDIR/_$PRGNAM.tar.gz
cd -
fi
cd $TMP/tmp-$PRGNAM
echo "Extracting the source archive(s) for $PRGNAM..."
if $(file ${SOURCE} | grep -qi ": 7-zip"); then
7za x ${SOURCE}
elif $(file ${SOURCE} | grep -qi ": zip"); then
unzip ${SOURCE}
else
tar -xvf ${SOURCE}
fi
# extracted sources have random 'version' number
cd `echo ${PRGNAM}-*`
chown -R root:root .
chmod -R u+w,go+r-w,a+X-s .
# additional files need to be downloaded
cd dependencies/common
./install-dictionaries
./install-gwt
# ./install-boost # already installed as part of Slackware
cd -
echo Building ...
mkdir -p build
cd build
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr/local/lib/rstudio \
-DRSTUDIO_TARGET=Desktop \
-DCMAKE_BUILD_TYPE=Release \
..
# Following variables are not used during generation of Makefile
# -DMAN_INSTALL_DIR=/usr/man \
# -DSYSCONF_INSTALL_DIR=/etc \
# -DLIB_SUFFIX=${LIBDIRSUFFIX} \
# make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
make DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${PRGNAM}.log
cd -
# Add this to the doinst.sh:
mkdir -p $PKG/install
cat <<EOINS >> $PKG/install/doinst.sh
# Update the desktop database:
if [ -x usr/bin/update-desktop-database ]; then
chroot . /usr/bin/update-desktop-database usr/share/applications > /dev/null 2>&1
fi
# Update hicolor theme cache:
if [ -d usr/share/icons/hicolor ]; then
if [ -x /usr/bin/gtk-update-icon-cache ]; then
chroot . /usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor 1> /dev/null 2> /dev/null
fi
fi
# Update the mime database:
if [ -x usr/bin/update-mime-database ]; then
chroot . /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1
fi
# Add symbolic links:
cd /usr/local/bin ; rm -rf rstudio
cd /usr/local/bin ; ln -sf /usr/local/lib/rstudio/bin/rstudio rstudio
EOINS
# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
cat $SRCDIR/$(basename $0) > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION
find $PKG/usr/doc -type f -exec chmod 644 {} \;
# Compress the man page(s):
if [ -d $PKG/usr/man ]; then
find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \;
for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
fi
# Compress info pages and remove the package's dir file:
if [ -d $PKG/usr/info ]; then
rm -f $PKG/usr/info/dir
gzip -9f $PKG/usr/info/*.info*
# If any info files are present, consider adding this to a doinst.sh:
# chroot . install-info /usr/info/XXXXX.info.gz /usr/info/dir 2> /dev/null
fi
# Strip binaries (if any):
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
# Add a package description:
mkdir -p $PKG/install
cat $SRCDIR/slack-desc > $PKG/install/slack-desc
if [ -f $SRCDIR/doinst.sh ]; then
cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh
fi
# Build the package:
cd $PKG
makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz} 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
cd $OUTPUT
md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz} > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz}.md5
cd -
cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt
# Restore the original umask:
umask ${_UMASK_}
A slack-desc file can be copied from below in post #5.
Last edited by BroX; 05-04-2012 at 09:42 AM.
Reason: added dependencies in `Needs:` section of script; removed some DOCS
-- Generating done
CMake Warning: The variable, 'LIB_SUFFIX', specified manually, was not used during the generation.
CMake Warning: The variable, 'MAN_INSTALL_DIR', specified manually, was not used during the generation.
CMake Warning: The variable, 'SYSCONF_INSTALL_DIR', specified manually, was not used during the generation.
-- Build files have been written to: /tmp/build/tmp-rstudio/rstudio-rstudio-78eb4de/build
Scanning dependencies of target gwt_build
/bin/sh: ant: command not found
make[2]: *** [gwt_build] Error 127
make[1]: *** [src/gwt/CMakeFiles/gwt_build.dir/all] Error 2
make: *** [all] Error 2
/bin/sh: ant: command not found
make[2]: *** [gwt_build] Error 127
make[1]: *** [src/gwt/CMakeFiles/gwt_build.dir/all] Error 2
make: *** [all] Error 2
/tmp/build/tmp-rstudio/rstudio-rstudio-78eb4de
cp: cannot stat `ABOUT*': No such file or directory
cp: cannot stat `AUTHORS': No such file or directory
cp: cannot stat `BUGS': No such file or directory
cp: cannot stat `ChangeLog*': No such file or directory
cp: cannot stat `CREDITS': No such file or directory
cp: cannot stat `FAQ': No such file or directory
cp: cannot stat `GPL*': No such file or directory
cp: cannot stat `HACKING': No such file or directory
cp: cannot stat `LICENSE': No such file or directory
cp: cannot stat `MAINTAINERS': No such file or directory
cp: cannot stat `NEWS': No such file or directory
cp: cannot stat `TODO': No such file or directory
cat: /home/expander/Downloads/slack-desc: No such file or directory
./rstudio.SlackBuild FAILED at line 244
Last edited by Bindestreck; 05-03-2012 at 08:29 AM.
So, I installed "apache-ant", and now another fail:
Code:
javac:
[mkdir] Created dir: /tmp/build/tmp-rstudio/rstudio-rstudio-78eb4de/src/gwt/bin
BUILD FAILED
/tmp/build/tmp-rstudio/rstudio-rstudio-78eb4de/src/gwt/build.xml:145: The following error occurred while executing this line:
/tmp/build/tmp-rstudio/rstudio-rstudio-78eb4de/src/gwt/build.xml:88: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib64/java"
Total time: 3 seconds
make[2]: *** [gwt_build] Error 1
make[1]: *** [src/gwt/CMakeFiles/gwt_build.dir/all] Error 2
make: *** [all] Error 2
Unable to locate tools.jar. Expected to find it in /usr/lib64/java/lib/tools.jar
Buildfile: /tmp/build/tmp-rstudio/rstudio-rstudio-78eb4de/src/gwt/build.xml
desktop:
ext:
[jscomp] None of the files changed. Compilation skipped.
[jscomp] None of the files changed. Compilation skipped.
javac:
BUILD FAILED
/tmp/build/tmp-rstudio/rstudio-rstudio-78eb4de/src/gwt/build.xml:145: The following error occurred while executing this line:
/tmp/build/tmp-rstudio/rstudio-rstudio-78eb4de/src/gwt/build.xml:88: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib64/java"
Total time: 0 seconds
make[2]: *** [gwt_build] Error 1
make[1]: *** [src/gwt/CMakeFiles/gwt_build.dir/all] Error 2
make: *** [all] Error 2
/tmp/build/tmp-rstudio/rstudio-rstudio-78eb4de
cp: cannot stat `ABOUT*': No such file or directory
cp: cannot stat `AUTHORS': No such file or directory
cp: cannot stat `BUGS': No such file or directory
cp: cannot stat `ChangeLog*': No such file or directory
cp: cannot stat `CREDITS': No such file or directory
cp: cannot stat `FAQ': No such file or directory
cp: cannot stat `GPL*': No such file or directory
cp: cannot stat `HACKING': No such file or directory
cp: cannot stat `LICENSE': No such file or directory
cp: cannot stat `MAINTAINERS': No such file or directory
cp: cannot stat `NEWS': No such file or directory
cp: cannot stat `TODO': No such file or directory
cat: /home/expander/Downloads/slack-desc: No such file or directory
./rstudio.SlackBuild FAILED at line 244
Holy mother man, your script was supposed to care of all "necessary" files... such a BIG lie!
Holy mother man, your script was supposed to care of all "necessary" files... such a BIG lie!
Bummer!
Well, what I meant was it downloads the three dependencies indicated by the INSTALL file...
But I think your problem is the lack of java development kit (jdk)? If so, I suggest you remove jre (or openjre, or equivalent) and install openjdk which AlienBob has kindly prepared for you.
Then try again.
And before you complain about not finding the slack-desc file , here it is:
Code:
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
rstudio: rstudio (RStudio is an IDE for R)
rstudio:
rstudio: RStudio(tm) is a free and open source integrated development
rstudio: environment (IDE) for R. You can run it on your desktop (Windows,
rstudio: Mac, or Linux) or even over the web using RStudio Server.
rstudio:
rstudio:
rstudio:
rstudio:
rstudio:
rstudio: Home: http://rstudio.org/
Edit: removed some missing DOCS from the script.
Last edited by BroX; 05-03-2012 at 09:33 AM.
Reason: removed some missing DOCS from the script
Ok, thanks. Everything compiled fine, however, no binary files were installed...
Code:
bash-4.2$ cat rstudio-0.96.111-x86_64-1_ljs
PACKAGE NAME: rstudio-0.96.111-x86_64-1_ljs
COMPRESSED PACKAGE SIZE: 20K
UNCOMPRESSED PACKAGE SIZE: 60K
PACKAGE LOCATION: rstudio-0.96.111-x86_64-1_ljs.tgz
PACKAGE DESCRIPTION:
rstudio: rstudio (RStudio is an IDE for R)
rstudio:
rstudio: RStudio(tm) is a free and open source integrated development
rstudio: environment (IDE) for R. You can run it on your desktop (Windows,
rstudio: Mac, or Linux) or even over the web using RStudio Server.
rstudio:
rstudio:
rstudio:
rstudio:
rstudio:
rstudio: Home: http://rstudio.org/
FILE LIST:
./
install/
install/doinst.sh
install/slack-desc
usr/
usr/doc/
usr/doc/rstudio-0.96.111/
usr/doc/rstudio-0.96.111/COPYING
usr/doc/rstudio-0.96.111/rstudio.SlackBuild
usr/doc/rstudio-0.96.111/README.md
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::(anonymous namespace)::copyToActiveDevice()':
RGraphicsDevice.cpp:(.text+0x2cc): undefined reference to `GEdeviceNumber'
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::(anonymous namespace)::createGD() [clone .part.11]':
RGraphicsDevice.cpp:(.text+0x305): undefined reference to `R_CheckDeviceAvailable'
RGraphicsDevice.cpp:(.text+0x31a): undefined reference to `R_NilValue'
RGraphicsDevice.cpp:(.text+0x321): undefined reference to `R_interrupts_suspended'
RGraphicsDevice.cpp:(.text+0x59a): undefined reference to `GEcreateDevDesc'
RGraphicsDevice.cpp:(.text+0x5b0): undefined reference to `GEaddDevice2'
RGraphicsDevice.cpp:(.text+0x5cb): undefined reference to `Rf_ndevNumber'
RGraphicsDevice.cpp:(.text+0x5d2): undefined reference to `Rf_selectDevice'
RGraphicsDevice.cpp:(.text+0x5d9): undefined reference to `R_interrupts_pending'
RGraphicsDevice.cpp:(.text+0x62e): undefined reference to `Rf_error'
RGraphicsDevice.cpp:(.text+0x641): undefined reference to `Rf_onintr'
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::(anonymous namespace)::createGD()':
RGraphicsDevice.cpp:(.text+0x688): undefined reference to `Rf_warning'
RGraphicsDevice.cpp:(.text+0x68f): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::(anonymous namespace)::resyncDisplayList()':
RGraphicsDevice.cpp:(.text+0x888): undefined reference to `GEplayDisplayList'
RGraphicsDevice.cpp:(.text+0xa08): undefined reference to `Rprintf'
RGraphicsDevice.cpp:(.text+0xa2c): undefined reference to `Rf_ndevNumber'
RGraphicsDevice.cpp:(.text+0xa33): undefined reference to `Rf_killDevice'
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::initialize(core::FilePath const&, boost::function<bool (double*, double*)> const&)':
RGraphicsDevice.cpp:(.text+0xe78): undefined reference to `Rf_xDevtoUsr'
RGraphicsDevice.cpp:(.text+0xeae): undefined reference to `Rf_yDevtoUsr'
RGraphicsDevice.cpp:(.text+0xedf): undefined reference to `Rf_xDevtoNDC'
RGraphicsDevice.cpp:(.text+0xefd): undefined reference to `Rf_yDevtoNDC'
RGraphicsDevice.cpp:(.text+0x1624): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::(anonymous namespace)::makeActive()':
RGraphicsDevice.cpp:(.text+0x181f): undefined reference to `Rf_ndevNumber'
RGraphicsDevice.cpp:(.text+0x1826): undefined reference to `Rf_selectDevice'
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::(anonymous namespace)::rs_activateGD()':
RGraphicsDevice.cpp:(.text+0x1a5a): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::(anonymous namespace)::restoreSnapshot(core::FilePath const&)':
RGraphicsDevice.cpp:(.text+0x1b3b): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::(anonymous namespace)::saveSnapshot(core::FilePath const&, core::FilePath const&)':
RGraphicsDevice.cpp:(.text+0x1ccb): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::close()':
RGraphicsDevice.cpp:(.text+0x20f): undefined reference to `Rf_killDevice'
../r/librstudio-r.a(RGraphicsDevice.cpp.o): In function `r::session::graphics::device::(anonymous namespace)::copyToActiveDevice()':
RGraphicsDevice.cpp:(.text+0x2d7): undefined reference to `GEcopyDisplayList'
../r/librstudio-r.a(RGraphicsPlotManager.cpp.o): In function `r::session::graphics::PlotManager::onDeviceNewPage(SEXPREC*)':
RGraphicsPlotManager.cpp:(.text+0x170f): undefined reference to `R_NilValue'
RGraphicsPlotManager.cpp:(.text+0x18db): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlotManager.cpp.o): In function `r::session::graphics::PlotManager::savePlotAsFile(boost::function<core::Error ()> const&)':
RGraphicsPlotManager.cpp:(.text+0x1c60): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RGraphicsUtils.cpp.o): In function `r::session::graphics::RestorePreviousGraphicsDeviceScope::~RestorePreviousGraphicsDeviceScope()':
RGraphicsUtils.cpp:(.text+0x44): undefined reference to `Rf_ndevNumber'
RGraphicsUtils.cpp:(.text+0x4b): undefined reference to `Rf_selectDevice'
../r/librstudio-r.a(RGraphicsUtils.cpp.o): In function `r::session::graphics::RestorePreviousGraphicsDeviceScope::RestorePreviousGraphicsDeviceScope()':
RGraphicsUtils.cpp:(.text+0x18f): undefined reference to `Rf_NoDevices'
RGraphicsUtils.cpp:(.text+0x1a9): undefined reference to `GEcurrentDevice'
../r/librstudio-r.a(RGraphicsUtils.cpp.o): In function `r::session::graphics::reportError(core::Error const&)':
RGraphicsUtils.cpp:(.text+0x2ba): undefined reference to `REprintf'
../r/librstudio-r.a(RGraphicsUtils.cpp.o): In function `r::session::graphics::validateRequirements(std::string*)':
RGraphicsUtils.cpp:(.text+0x3c8): undefined reference to `R_GE_getVersion'
../r/librstudio-r.a(RSessionState.cpp.o): In function `r::session::state::(anonymous namespace)::reportError(std::string const&, std::string const&, core::Error const&, core::ErrorLocation const&, boost::function<void (char const*)> const&)':
RSessionState.cpp:(.text+0x3f0): undefined reference to `REprintf'
../r/librstudio-r.a(RGraphicsPlot.cpp.o): In function `r::session::graphics::Plot::hasManipulator() const':
RGraphicsPlot.cpp:(.text+0x603): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlot.cpp.o): In function `r::session::graphics::Plot::loadManipulatorIfNecessary() const':
RGraphicsPlot.cpp:(.text+0x644): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlot.cpp.o): In function `r::session::graphics::Plot::manipulatorSEXP() const':
RGraphicsPlot.cpp:(.text+0x7b1): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlot.cpp.o): In function `r::session::graphics::Plot::saveManipulator(std::string const&) const':
RGraphicsPlot.cpp:(.text+0x824): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlot.cpp.o): In function `r::session::graphics::Plot::saveManipulator() const':
RGraphicsPlot.cpp:(.text+0x913): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlot.cpp.o): In function `r::session::graphics::Plot::renderFromDisplaySnapshot(SEXPREC*)':
RGraphicsPlot.cpp:(.text+0x193c): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RGraphicsPlot.cpp.o): In function `r::session::graphics::Plot::manipulatorAsJson(json_spirit::Value_impl<json_spirit::Config_map<std::string> >*) const':
RGraphicsPlot.cpp:(.text+0x1ddf): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlot.cpp.o): In function `r::exec::RFunction::RFunction<SEXPREC*, std::string>(std::string const&, SEXPREC* const&, std::string const&)':
RGraphicsPlot.cpp:(.text._ZN1r4exec9RFunctionC2IP7SEXPRECSsEERKSsRKT_RKT0_[_ZN1r4exec9RFunctionC5IP7SEXPRECSsEERKSsRKT_RKT0_]+0x6c): undefined reference to `R_UnboundValue'
../r/librstudio-r.a(RGraphicsPlotManipulator.cpp.o): In function `r::session::graphics::PlotManipulator::get(std::string const&) const':
RGraphicsPlotManipulator.cpp:(.text+0x35b): undefined reference to `R_NilValue'
RGraphicsPlotManipulator.cpp:(.text+0x3f2): undefined reference to `R_UnboundValue'
../r/librstudio-r.a(RGraphicsPlotManipulator.cpp.o): In function `r::session::graphics::PlotManipulator::getUserVisibleValuesList() const':
RGraphicsPlotManipulator.cpp:(.text+0x70a): undefined reference to `R_NilValue'
RGraphicsPlotManipulator.cpp:(.text+0x795): undefined reference to `R_UnboundValue'
../r/librstudio-r.a(RGraphicsPlotManipulator.cpp.o): In function `r::session::graphics::PlotManipulator::load(core::FilePath const&)':
RGraphicsPlotManipulator.cpp:(.text+0xb11): undefined reference to `R_UnboundValue'
../r/librstudio-r.a(RGraphicsPlotManipulator.cpp.o): In function `r::session::graphics::PlotManipulator::save(core::FilePath const&) const':
RGraphicsPlotManipulator.cpp:(.text+0xe76): undefined reference to `R_UnboundValue'
RGraphicsPlotManipulator.cpp:(.text+0xf1d): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RGraphicsPlotManipulator.cpp.o): In function `r::session::graphics::PlotManipulator::getControlAsJson(SEXPREC*) const':
RGraphicsPlotManipulator.cpp:(.text+0x1504): undefined reference to `VECTOR_ELT'
../r/librstudio-r.a(RGraphicsPlotManipulator.cpp.o): In function `r::session::graphics::PlotManipulator::getControlsAsJson() const':
RGraphicsPlotManipulator.cpp:(.text+0x1a32): undefined reference to `R_NilValue'
RGraphicsPlotManipulator.cpp:(.text+0x1c7c): undefined reference to `VECTOR_ELT'
../r/librstudio-r.a(RGraphicsPlotManipulator.cpp.o): In function `r::session::graphics::PlotManipulator::asJson(json_spirit::Value_impl<json_spirit::Config_map<std::string> >*) const':
RGraphicsPlotManipulator.cpp:(.text+0x213b): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::PlotManipulatorManager::hasActiveManipulator() const':
RGraphicsPlotManipulatorManager.cpp:(.text+0x1a4): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::PlotManipulatorManager::activeManipulator() const':
RGraphicsPlotManipulatorManager.cpp:(.text+0x1f4): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::PlotManipulatorManager::PlotManipulatorManager()':
RGraphicsPlotManipulatorManager.cpp:(.text+0x4d7): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::(anonymous namespace)::rs_activeManipulator()':
RGraphicsPlotManipulatorManager.cpp:(.text+0x5ad): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o):RGraphicsPlotManipulatorManager.cpp:(.text+0x64a): more undefined references to `R_NilValue' follow
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::(anonymous namespace)::safeExecuteManipulator(SEXPREC*)':
RGraphicsPlotManipulatorManager.cpp:(.text+0x965): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::PlotManipulatorManager::executeAndAttachManipulator(SEXPREC*)':
RGraphicsPlotManipulatorManager.cpp:(.text+0xca0): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::(anonymous namespace)::rs_executeAndAttachManipulator(SEXPREC*)':
RGraphicsPlotManipulatorManager.cpp:(.text+0xd1f): undefined reference to `R_NilValue'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::PlotManipulatorManager::trackingMouseClicks(SEXPREC*) const':
RGraphicsPlotManipulatorManager.cpp:(.text+0xf77): undefined reference to `R_UnboundValue'
RGraphicsPlotManipulatorManager.cpp:(.text+0x1036): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::PlotManipulatorManager::manipulatorPlotClicked(int, int)':
RGraphicsPlotManipulatorManager.cpp:(.text+0x1419): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::(anonymous namespace)::setManipulatorJsonValue(SEXPREC*, std::pair<std::string, json_spirit::Value_impl<json_spirit::Config_map<std::string> > > const&)':
RGraphicsPlotManipulatorManager.cpp:(.text+0x16f5): undefined reference to `R_UnboundValue'
RGraphicsPlotManipulatorManager.cpp:(.text+0x1816): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RGraphicsPlotManipulatorManager.cpp.o): In function `r::session::graphics::PlotManipulatorManager::setPlotManipulatorValues(std::map<std::string, json_spirit::Value_impl<json_spirit::Config_map<std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, json_spirit::Value_impl<json_spirit::Config_map<std::string> > > > > const&)':
RGraphicsPlotManipulatorManager.cpp:(.text+0x1d1b): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RSearchPath.cpp.o): In function `r::session::search_path::save(core::FilePath const&)':
RSearchPath.cpp:(.text+0x2b8): undefined reference to `R_SaveGlobalEnvToFile'
RSearchPath.cpp:(.text+0x669): undefined reference to `R_GlobalEnv'
RSearchPath.cpp:(.text+0x671): undefined reference to `ENCLOS'
RSearchPath.cpp:(.text+0x678): undefined reference to `R_BaseEnv'
RSearchPath.cpp:(.text+0x696): undefined reference to `ENCLOS'
RSearchPath.cpp:(.text+0x6e1): undefined reference to `Rf_install'
RSearchPath.cpp:(.text+0x6ee): undefined reference to `Rf_getAttrib'
RSearchPath.cpp:(.text+0x70d): undefined reference to `Rf_isString'
RSearchPath.cpp:(.text+0x7a0): undefined reference to `R_GlobalEnv'
RSearchPath.cpp:(.text+0x883): undefined reference to `Rf_length'
../r/librstudio-r.a(RSearchPath.cpp.o): In function `r::session::search_path::restore(core::FilePath const&)':
RSearchPath.cpp:(.text+0xd93): undefined reference to `R_GlobalEnv'
RSearchPath.cpp:(.text+0x10df): undefined reference to `R_GlobalEnv'
RSearchPath.cpp:(.text+0x1aad): undefined reference to `R_GlobalEnv'
RSearchPath.cpp:(.text+0x1c43): undefined reference to `R_GlobalEnv'
../r/librstudio-r.a(RSearchPath.cpp.o): In function `r::session::search_path::(anonymous namespace)::reportRestoreError(std::string const&, core::Error const&, core::ErrorLocation const&)':
RSearchPath.cpp:(.text.unlikely+0x1b3): undefined reference to `REprintf'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RCairoGraphicsHandler.cpp.o): In function `r::session::graphics::handler::cairo::cap(_DevDesc*)':
RCairoGraphicsHandler.cpp:(.text+0x133): undefined reference to `R_NilValue'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RCairoGraphicsHandler.cpp.o): In function `r::session::graphics::handler::cairo::raster(unsigned int*, int, int, double, double, double, double, double, Rboolean, R_GE_gcontext*, _DevDesc*)':
RCairoGraphicsHandler.cpp:(.text+0x3eb): undefined reference to `vmaxget'
RCairoGraphicsHandler.cpp:(.text+0x41c): undefined reference to `R_alloc'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RCairoGraphicsHandler.cpp.o): In function `r::session::graphics::handler::cairo::metricInfo(int, R_GE_gcontext*, double*, double*, double*, _DevDesc*)':
RCairoGraphicsHandler.cpp:(.text+0x96d): undefined reference to `mbcslocale'
RCairoGraphicsHandler.cpp:(.text+0x990): undefined reference to `Rf_ucstoutf8'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RCairoGraphicsHandler.cpp.o): In function `r::session::graphics::handler::cairo::initializeWithFile(core::FilePath const&, int, int, bool, r::session::graphics::handler::DeviceContext*)':
RCairoGraphicsHandler.cpp:(.text+0xdac): undefined reference to `Rf_warning'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RCairoGraphicsHandler.cpp.o): In function `r::session::graphics::handler::cairo::raster(unsigned int*, int, int, double, double, double, double, double, Rboolean, R_GE_gcontext*, _DevDesc*)':
RCairoGraphicsHandler.cpp:(.text+0x5f3): undefined reference to `vmaxset'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RShadowPngGraphicsHandler.cpp.o): In function `r::session::graphics::handler::shadow::cap(_DevDesc*)':
RShadowPngGraphicsHandler.cpp:(.text+0x13): undefined reference to `R_NilValue'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RShadowPngGraphicsHandler.cpp.o): In function `r::session::graphics::handler::shadow::(anonymous namespace)::PreserveCurrentDeviceScope::~PreserveCurrentDeviceScope()':
RShadowPngGraphicsHandler.cpp:(.text+0x30): undefined reference to `Rf_ndevNumber'
RShadowPngGraphicsHandler.cpp:(.text+0x37): undefined reference to `Rf_selectDevice'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RShadowPngGraphicsHandler.cpp.o): In function `r::session::graphics::handler::shadow::onBeforeExecute(r::session::graphics::handler::DeviceContext*)':
RShadowPngGraphicsHandler.cpp:(.text+0x55): undefined reference to `Rf_NoDevices'
RShadowPngGraphicsHandler.cpp:(.text+0x61): undefined reference to `GEcurrentDevice'
RShadowPngGraphicsHandler.cpp:(.text+0x7f): undefined reference to `Rf_ndevNumber'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RShadowPngGraphicsHandler.cpp.o): In function `r::session::graphics::handler::shadow::initializeWithFile(core::FilePath const&, int, int, bool, r::session::graphics::handler::DeviceContext*)':
RShadowPngGraphicsHandler.cpp:(.text+0x202): undefined reference to `R_TempDir'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RShadowPngGraphicsHandler.cpp.o): In function `r::session::graphics::handler::shadow::(anonymous namespace)::shadowDevOff(r::session::graphics::handler::DeviceContext*) [clone .isra.83]':
RShadowPngGraphicsHandler.cpp:(.text+0x776): undefined reference to `Rf_desc2GEDesc'
RShadowPngGraphicsHandler.cpp:(.text+0x781): undefined reference to `Rf_ndevNumber'
RShadowPngGraphicsHandler.cpp:(.text+0x790): undefined reference to `GEkillDevice'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RShadowPngGraphicsHandler.cpp.o): In function `r::session::graphics::handler::shadow::(anonymous namespace)::shadowDevDesc(r::session::graphics::handler::DeviceContext*, _DevDesc**)':
RShadowPngGraphicsHandler.cpp:(.text+0x97a): undefined reference to `Rf_ndevNumber'
RShadowPngGraphicsHandler.cpp:(.text+0x998): undefined reference to `Rf_NoDevices'
RShadowPngGraphicsHandler.cpp:(.text+0xc96): undefined reference to `Rf_ndevNumber'
RShadowPngGraphicsHandler.cpp:(.text+0xc9d): undefined reference to `Rf_selectDevice'
RShadowPngGraphicsHandler.cpp:(.text+0xcb1): undefined reference to `GEcurrentDevice'
RShadowPngGraphicsHandler.cpp:(.text+0xcf3): undefined reference to `Rf_ndevNumber'
RShadowPngGraphicsHandler.cpp:(.text+0xcfa): undefined reference to `Rf_selectDevice'
RShadowPngGraphicsHandler.cpp:(.text+0xe41): undefined reference to `GEcurrentDevice'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RShadowPngGraphicsHandler.cpp.o): In function `r::session::graphics::handler::shadow::(anonymous namespace)::shadowDevSync(r::session::graphics::handler::DeviceContext*)':
RShadowPngGraphicsHandler.cpp:(.text+0x17d1): undefined reference to `Rf_desc2GEDesc'
RShadowPngGraphicsHandler.cpp:(.text+0x17d9): undefined reference to `GEdeviceNumber'
RShadowPngGraphicsHandler.cpp:(.text+0x17e8): undefined reference to `Rf_NoDevices'
RShadowPngGraphicsHandler.cpp:(.text+0x17f1): undefined reference to `GEcurrentDevice'
RShadowPngGraphicsHandler.cpp:(.text+0x1870): undefined reference to `Rf_ndevNumber'
RShadowPngGraphicsHandler.cpp:(.text+0x1877): undefined reference to `Rf_selectDevice'
RShadowPngGraphicsHandler.cpp:(.text+0x188e): undefined reference to `Rf_ndevNumber'
RShadowPngGraphicsHandler.cpp:(.text+0x1895): undefined reference to `Rf_selectDevice'
RShadowPngGraphicsHandler.cpp:(.text+0x189c): undefined reference to `GEcopyDisplayList'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RShadowPngGraphicsHandler.cpp.o): In function `r::session::graphics::handler::shadow::onBeforeExecute(r::session::graphics::handler::DeviceContext*)':
RShadowPngGraphicsHandler.cpp:(.text+0x87): undefined reference to `Rf_selectDevice'
../r/librstudio-r.a(RRoutines.cpp.o): In function `r::routines::registerAll()':
RRoutines.cpp:(.text+0xd5): undefined reference to `R_getEmbeddingDllInfo'
RRoutines.cpp:(.text+0xe8): undefined reference to `R_registerRoutines'
../r/librstudio-r.a(REmbeddedPosix.cpp.o): In function `r::session::runEmbeddedR(core::FilePath const&, core::FilePath const&, bool, SA_TYPE, r::session::Callbacks const&, r::session::InternalCallbacks*)':
REmbeddedPosix.cpp:(.text+0x50): undefined reference to `R_SignalHandlers'
REmbeddedPosix.cpp:(.text+0x57): undefined reference to `ptr_R_ShowMessage'
REmbeddedPosix.cpp:(.text+0x6e): undefined reference to `R_running_as_main_program'
REmbeddedPosix.cpp:(.text+0x90): undefined reference to `Rf_initialize_R'
REmbeddedPosix.cpp:(.text+0x9a): undefined reference to `R_DefParams'
REmbeddedPosix.cpp:(.text+0xdb): undefined reference to `R_SetParams'
REmbeddedPosix.cpp:(.text+0xe2): undefined reference to `R_Interactive'
REmbeddedPosix.cpp:(.text+0xf3): undefined reference to `R_Consolefile'
REmbeddedPosix.cpp:(.text+0x101): undefined reference to `R_Outputfile'
REmbeddedPosix.cpp:(.text+0x10f): undefined reference to `ptr_R_ReadConsole'
REmbeddedPosix.cpp:(.text+0x119): undefined reference to `ptr_R_WriteConsole'
REmbeddedPosix.cpp:(.text+0x12b): undefined reference to `ptr_R_WriteConsoleEx'
REmbeddedPosix.cpp:(.text+0x139): undefined reference to `ptr_R_EditFile'
REmbeddedPosix.cpp:(.text+0x147): undefined reference to `ptr_R_Busy'
REmbeddedPosix.cpp:(.text+0x15c): undefined reference to `ptr_R_ChooseFile'
REmbeddedPosix.cpp:(.text+0x16a): undefined reference to `ptr_R_ShowFiles'
REmbeddedPosix.cpp:(.text+0x178): undefined reference to `ptr_R_loadhistory'
REmbeddedPosix.cpp:(.text+0x186): undefined reference to `ptr_R_savehistory'
REmbeddedPosix.cpp:(.text+0x194): undefined reference to `ptr_R_addhistory'
REmbeddedPosix.cpp:(.text+0x19e): undefined reference to `ptr_R_Suicide'
REmbeddedPosix.cpp:(.text+0x1b3): undefined reference to `ptr_R_CleanUp'
REmbeddedPosix.cpp:(.text+0x1c7): undefined reference to `Rf_mainloop'
../r/librstudio-r.a(REmbeddedPosix.cpp.o): In function `r::session::event_loop::initializePolledEventHandler(void (*)())':
REmbeddedPosix.cpp:(.text+0x2c0): undefined reference to `R_PolledEvents'
REmbeddedPosix.cpp:(.text+0x2e2): undefined reference to `R_wait_usec'
../r/librstudio-r.a(REmbeddedPosix.cpp.o): In function `r::session::event_loop::processEvents()':
REmbeddedPosix.cpp:(.text+0x34c): undefined reference to `R_checkActivity'
REmbeddedPosix.cpp:(.text+0x356): undefined reference to `R_InputHandlers'
REmbeddedPosix.cpp:(.text+0x362): undefined reference to `R_runHandlers'
../r/librstudio-r.a(RGraphicsFileDevice.cpp.o): In function `r::session::graphics::file_device::(anonymous namespace)::createDevice(int, int, core::FilePath const&)':
RGraphicsFileDevice.cpp:(.text+0xcf): undefined reference to `R_CheckDeviceAvailable'
RGraphicsFileDevice.cpp:(.text+0xdd): undefined reference to `R_interrupts_suspended'
RGraphicsFileDevice.cpp:(.text+0x2c4): undefined reference to `R_NilValue'
RGraphicsFileDevice.cpp:(.text+0x34a): undefined reference to `GEcreateDevDesc'
RGraphicsFileDevice.cpp:(.text+0x35c): undefined reference to `GEaddDevice2'
RGraphicsFileDevice.cpp:(.text+0x370): undefined reference to `Rf_ndevNumber'
RGraphicsFileDevice.cpp:(.text+0x377): undefined reference to `Rf_selectDevice'
RGraphicsFileDevice.cpp:(.text+0x37e): undefined reference to `R_interrupts_pending'
RGraphicsFileDevice.cpp:(.text+0x3c1): undefined reference to `Rf_onintr'
RGraphicsFileDevice.cpp:(.text+0x3e6): undefined reference to `Rf_error'
../r/librstudio-r.a(RGraphicsFileDevice.cpp.o): In function `r::session::graphics::file_device::(anonymous namespace)::CFD_Close(_DevDesc*)':
RGraphicsFileDevice.cpp:(.text+0x47f): undefined reference to `Rf_desc2GEDesc'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RGraphicsDevDesc.cpp.o): In function `r::session::graphics::handler::dev_desc::allocate(DevDescVersion9 const&)':
RGraphicsDevDesc.cpp:(.text+0x5): undefined reference to `R_GE_getVersion'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RGraphicsDevDesc.cpp.o): In function `r::session::graphics::handler::dev_desc::setSize(_DevDesc*)':
RGraphicsDevDesc.cpp:(.text+0xc8a): undefined reference to `R_GE_getVersion'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RGraphicsDevDesc.cpp.o): In function `r::session::graphics::handler::dev_desc::path(double*, double*, int, int*, Rboolean, R_GE_gcontext*, _DevDesc*)':
RGraphicsDevDesc.cpp:(.text+0xd38): undefined reference to `R_GE_getVersion'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RGraphicsDevDesc.cpp.o): In function `r::session::graphics::handler::dev_desc::raster(unsigned int*, int, int, double, double, double, double, double, Rboolean, R_GE_gcontext*, _DevDesc*)':
RGraphicsDevDesc.cpp:(.text+0xdce): undefined reference to `R_GE_getVersion'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RGraphicsDevDesc.cpp.o): In function `r::session::graphics::handler::dev_desc::strWidth(char const*, R_GE_gcontext*, _DevDesc*)':
RGraphicsDevDesc.cpp:(.text+0xe6d): undefined reference to `R_GE_getVersion'
../r/session/graphics/handler/librstudio-r-graphics-handler.a(RGraphicsDevDesc.cpp.o):RGraphicsDevDesc.cpp:(.text+0xf04): more undefined references to `R_GE_getVersion' follow
/usr/lib64/R/lib/libRlapack.so: undefined reference to `xerbla_'
collect2: error: ld returned 1 exit status
make[2]: *** [src/cpp/session/rsession] Error 1
make[1]: *** [src/cpp/session/CMakeFiles/rsession.dir/all] Error 2
make: *** [all] Error 2
So it trowed an error but the compilation did not fail...
Last edited by Bindestreck; 05-03-2012 at 10:45 AM.
Since the errors are related to R, I am guessing that you have R installed with static libraries.
If you install R (latest version 2.15.0) using SBopkg then shared libraries will be enabled by default. Otherwise you should recompile R with ./configure --enable-R-shlibs
Since the errors are related to R, I am guessing that you have R installed with static libraries.
If you install R (latest version 2.15.0) using SBopkg then shared libraries will be enabled by default. Otherwise you should recompile R with ./configure --enable-R-shlibs
Hope this helps.
Yes, you was right. When installing via SBopkg it worked, thank you for your help! Ha en trevlig helg, nu ska jag hem och dricka lite bärs!
Last edited by Bindestreck; 05-04-2012 at 09:21 AM.
Updated slackbuild script for release version rstudio-0.96, which needs installation of Mathjax as a dependency.
rstudio.Slackbuild:
Code:
#!/bin/sh -e
# Generated by Alien's SlackBuild Toolkit: http://slackware.com/~alien/AST
# Copyright 2009, 2010, 2011, 2012 Eric Hameleers, Eindhoven, Netherlands
# Copyright 2012 Leon Brokken <leon.brokken@med.lu.se>
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
# any purpose with or without fee is hereby granted, provided that
# the above copyright notice and this permission notice appear in all
# copies.
#
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
# -----------------------------------------------------------------------------
#
# Slackware SlackBuild script
# ===========================
# By: Leon Brokken <leon.brokken@med.lu.se>
# For: rstudio
# Descr: RStudio is an IDE for R
# URL: http://rstudio.org/
# Needs: apache-ant, openjdk
# R-2.11.1 built with shared libraries (configure with --enable-R-shlib)
# CMake-2.6, Pango-1.14, Boost-1.42, Qt-4.8
# Changelog:
# 0.96.111-1: 02/May/2012 by Leon Brokken <leon.brokken@med.lu.se>
# * Initial build.
# 0.96: 14/May/2012 by Leon Brokken <leon.brokken@med.lu.se>
# * added install of dependency Mathjax
#
# Run 'sh rstudio.SlackBuild' to build a Slackware package.
# The package (.tgz) and .txt file as well as build logs are created in /tmp .
# Install it using 'installpkg'.
#
# -----------------------------------------------------------------------------
# Set initial variables:
PRGNAM=rstudio
VERSION=${VERSION:-0.96}
BUILD=${BUILD:-1}
# 'make' can run jobs in parallel for added speed. The number should be higher
# than the number of cores/virtual CPU's in your system:
NUMJOBS=${NUMJOBS:" -j4 "}
# The TAG is a unique identifier for all your Slackware packages.
# Use your initials as the value for TAG for instance.
TAG=${TAG:-_ljs}
# This covers most filenames you'd want as documentation. Change if needed.
DOCS="COPYING README*"
# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)
# Place to build (TMP) package (PKG) and output (OUTPUT) the program:
TMP=${TMP:-/tmp/build}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
# Input URL: https://github.com/rstudio/rstudio/zipball/master
SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.zip"
SRCURL="https://github.com/${PRGNAM}/${PRGNAM}/zipball/master"
##
## --- with a little luck, you won't have to edit below this point --- ##
##
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i486 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
case "$ARCH" in
i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
x86_64) SLKCFLAGS="-O2 -fPIC"
SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
;;
*) SLKCFLAGS="-O2"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
esac
# Exit the script on errors:
set -e
trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR
# Catch unitialized variables:
set -u
P1=${1:-1}
# Save old umask and set to 0022:
_UMASK_=$(umask)
umask 0022
# Create working directories:
mkdir -p $OUTPUT # place for the package to be saved
mkdir -p $TMP/tmp-$PRGNAM # location to build the source
mkdir -p $PKG # place for the package to be built
rm -rf $PKG/* # always erase old package's contents
rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build
rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$PRGNAM.log
# remove old log files
# Source file availability:
if ! [ -f ${SOURCE} ]; then
echo "Source '$(basename ${SOURCE})' not available yet..."
# Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
[ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)"
if [ -f ${SOURCE} ]; then echo "Ah, found it!"; continue; fi
if ! [ "x${SRCURL}" == "x" ]; then
echo "Will download file to $(dirname $SOURCE)"
wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true
if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then
echo "Downloading '$(basename ${SOURCE})' failed... aborting the build."
mv -f "${SOURCE}" "${SOURCE}".FAIL
exit 1
fi
else
echo "File '$(basename ${SOURCE})' not available... aborting the build."
exit 1
fi
fi
if [ "$P1" == "--download" ]; then
echo "Download complete."
exit 0
fi
# --- PACKAGE BUILDING ---
echo "++"
echo "|| $PRGNAM-$VERSION"
echo "++"
# Explode the package framework:
if [ -f $SRCDIR/_$PRGNAM.tar.gz ]; then
cd $PKG
explodepkg $SRCDIR/_$PRGNAM.tar.gz
cd -
fi
cd $TMP/tmp-$PRGNAM
echo "Extracting the source archive(s) for $PRGNAM..."
if $(file ${SOURCE} | grep -qi ": 7-zip"); then
7za x ${SOURCE}
elif $(file ${SOURCE} | grep -qi ": zip"); then
unzip ${SOURCE}
else
tar -xvf ${SOURCE}
fi
# extracted sources have random 'version' number
cd `echo ${PRGNAM}-*`
chown -R root:root .
chmod -R u+w,go+r-w,a+X-s .
# additional files need to be downloaded
cd dependencies/common
./install-dictionaries
./install-gwt
./install-mathjax
# ./install-boost # already installed as part of Slackware
cd -
echo Building ...
mkdir -p build
cd build
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr/local/lib/rstudio \
-DRSTUDIO_TARGET=Desktop \
-DCMAKE_BUILD_TYPE=Release \
..
# Following variables are not used during generation of Makefile
# -DMAN_INSTALL_DIR=/usr/man \
# -DSYSCONF_INSTALL_DIR=/etc \
# -DLIB_SUFFIX=${LIBDIRSUFFIX} \
# make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
make DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${PRGNAM}.log
cd -
# Add this to the doinst.sh:
mkdir -p $PKG/install
cat <<EOINS >> $PKG/install/doinst.sh
# Update the desktop database:
if [ -x usr/bin/update-desktop-database ]; then
chroot . /usr/bin/update-desktop-database usr/share/applications > /dev/null 2>&1
fi
# Update hicolor theme cache:
if [ -d usr/share/icons/hicolor ]; then
if [ -x /usr/bin/gtk-update-icon-cache ]; then
chroot . /usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor 1> /dev/null 2> /dev/null
fi
fi
# Update the mime database:
if [ -x usr/bin/update-mime-database ]; then
chroot . /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1
fi
# Add symbolic links:
cd /usr/local/bin ; rm -rf rstudio
cd /usr/local/bin ; ln -sf /usr/local/lib/rstudio/bin/rstudio rstudio
EOINS
# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
cat $SRCDIR/$(basename $0) > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION
find $PKG/usr/doc -type f -exec chmod 644 {} \;
# Compress the man page(s):
if [ -d $PKG/usr/man ]; then
find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \;
for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
fi
# Compress info pages and remove the package's dir file:
if [ -d $PKG/usr/info ]; then
rm -f $PKG/usr/info/dir
gzip -9f $PKG/usr/info/*.info*
# If any info files are present, consider adding this to a doinst.sh:
# chroot . install-info /usr/info/XXXXX.info.gz /usr/info/dir 2> /dev/null
fi
# Strip binaries (if any):
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
# Add a package description:
mkdir -p $PKG/install
cat $SRCDIR/slack-desc > $PKG/install/slack-desc
if [ -f $SRCDIR/doinst.sh ]; then
cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh
fi
# Build the package:
cd $PKG
makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz} 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
cd $OUTPUT
md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz} > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz}.md5
cd -
cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt
# Restore the original umask:
umask ${_UMASK_}
Tip: easiest way to update rstudio to the latest version is to provide VERSION=x.y.z when executing the Slackbuild script.
But note that this will not check the version number, it simply retrieves the latest zip file from git and appends the version number you provide:
Code:
# VERSION=0.97.11 ./rstudio.Slackbuild
Source 'rstudio-0.97.11.zip' not available yet...
Will download file to /home/leon/build/slackbuilds/rstudio
2012-07-06 23:48:31 URL:https://nodeload.github.com/rstudio/rstudio/zipball/master [14172429/14172429] -> "/home/leon/build/slackbuilds/rstudio/rstudio-0.97.11.zip"
...
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.