LinuxQuestions.org
Register a domain and help support LQ
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices

Reply
 
Search this Thread
Old 05-02-2012, 03:18 PM   #1
BroX
Member
 
Registered: Oct 2003
Location: Sweden
Distribution: Slackware64-current
Posts: 755

Rep: Reputation: 65
Slackbuild for rstudio


Hi,

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.

Thanks to Alien's SlackBuild Toolkit!

Dependencies:
Code:
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 10:42 AM. Reason: added dependencies in `Needs:` section of script; removed some DOCS
 
Old 05-03-2012, 08:54 AM   #2
Bindestreck
Member
 
Registered: Jul 2011
Location: Sweden
Distribution: Slackware
Posts: 333

Rep: Reputation: 73
Just how did you found the git version? :S

Ah, never mind, I found it in your script.

Well, this script fails for me...:

Quote:
-- 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 09:29 AM.
 
Old 05-03-2012, 09:28 AM   #3
BroX
Member
 
Registered: Oct 2003
Location: Sweden
Distribution: Slackware64-current
Posts: 755

Original Poster
Rep: Reputation: 65
Another way is to clone it directly:
Code:
git clone git://github.com/rstudio/rstudio.git
 
Old 05-03-2012, 09:44 AM   #4
Bindestreck
Member
 
Registered: Jul 2011
Location: Sweden
Distribution: Slackware
Posts: 333

Rep: Reputation: 73
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!
 
Old 05-03-2012, 10:15 AM   #5
BroX
Member
 
Registered: Oct 2003
Location: Sweden
Distribution: Slackware64-current
Posts: 755

Original Poster
Rep: Reputation: 65
Quote:
Originally Posted by eXpander_ View Post
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 10:33 AM. Reason: removed some missing DOCS from the script
 
Old 05-03-2012, 10:50 AM   #6
Bindestreck
Member
 
Registered: Jul 2011
Location: Sweden
Distribution: Slackware
Posts: 333

Rep: Reputation: 73
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
Is this normal?
 
Old 05-03-2012, 11:03 AM   #7
BroX
Member
 
Registered: Oct 2003
Location: Sweden
Distribution: Slackware64-current
Posts: 755

Original Poster
Rep: Reputation: 65
No, that's not right.

For some reason that I don't understand the slackbuilds that I create with Alien's slackbuild toolkit do not exit on error.

Could you look at /tmp/install-rstudio.log to see what errors it throws at you?

Last edited by BroX; 05-03-2012 at 11:25 AM.
 
Old 05-03-2012, 11:44 AM   #8
Bindestreck
Member
 
Registered: Jul 2011
Location: Sweden
Distribution: Slackware
Posts: 333

Rep: Reputation: 73
log file:

Code:
../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 11:45 AM.
 
Old 05-03-2012, 12:30 PM   #9
BroX
Member
 
Registered: Oct 2003
Location: Sweden
Distribution: Slackware64-current
Posts: 755

Original Poster
Rep: Reputation: 65
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.
 
Old 05-03-2012, 01:09 PM   #10
BroX
Member
 
Registered: Oct 2003
Location: Sweden
Distribution: Slackware64-current
Posts: 755

Original Poster
Rep: Reputation: 65
I updated the script to properly install in /usr/local/lib and /usr/share (instead of /usr)
Code:
$ cat /var/log/packages/rstudio-0.96.111-x86_64-1_ljs 

PACKAGE NAME:     rstudio-0.96.111-x86_64-1_ljs
COMPRESSED PACKAGE SIZE:     7.8M
UNCOMPRESSED PACKAGE SIZE:     39M
PACKAGE LOCATION: /tmp/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/slack-desc
install/doinst.sh
usr/
usr/doc/
usr/doc/rstudio-0.96.111/
usr/doc/rstudio-0.96.111/rstudio.SlackBuild
usr/doc/rstudio-0.96.111/README.md
usr/doc/rstudio-0.96.111/COPYING
usr/share/
usr/share/icons/
usr/share/icons/hicolor/
usr/share/icons/hicolor/256x256/
usr/share/icons/hicolor/256x256/mimetypes/
usr/share/icons/hicolor/256x256/mimetypes/application-x-r-project.png
usr/share/icons/hicolor/256x256/mimetypes/application-x-r-data.png
usr/share/icons/hicolor/256x256/apps/
usr/share/icons/hicolor/256x256/apps/rstudio.png
usr/share/icons/hicolor/48x48/
usr/share/icons/hicolor/48x48/mimetypes/
usr/share/icons/hicolor/48x48/mimetypes/application-x-r-project.png
usr/share/icons/hicolor/48x48/mimetypes/application-x-r-data.png
usr/share/icons/hicolor/48x48/apps/
usr/share/icons/hicolor/48x48/apps/rstudio.png
usr/share/icons/hicolor/32x32/
usr/share/icons/hicolor/32x32/mimetypes/
usr/share/icons/hicolor/32x32/mimetypes/application-x-r-project.png
usr/share/icons/hicolor/32x32/mimetypes/application-x-r-data.png
usr/share/icons/hicolor/32x32/apps/
usr/share/icons/hicolor/32x32/apps/rstudio.png
usr/share/icons/hicolor/24x24/
usr/share/icons/hicolor/24x24/mimetypes/
usr/share/icons/hicolor/24x24/mimetypes/application-x-r-project.png
usr/share/icons/hicolor/24x24/mimetypes/application-x-r-data.png
usr/share/icons/hicolor/24x24/apps/
usr/share/icons/hicolor/24x24/apps/rstudio.png
usr/share/icons/hicolor/16x16/
usr/share/icons/hicolor/16x16/mimetypes/
usr/share/icons/hicolor/16x16/mimetypes/application-x-r-project.png
usr/share/icons/hicolor/16x16/mimetypes/application-x-r-data.png
usr/share/icons/hicolor/16x16/apps/
usr/share/icons/hicolor/16x16/apps/rstudio.png
usr/share/pixmaps/
usr/share/pixmaps/rstudio.png
usr/share/mime/
usr/share/mime/packages/
usr/share/mime/packages/rstudio.xml
usr/share/applications/
usr/share/applications/rstudio.desktop
usr/local/
usr/local/lib/
usr/local/lib/rstudio/
usr/local/lib/rstudio/resources/
usr/local/lib/rstudio/resources/agpl-3.0-standalone.html
usr/local/lib/rstudio/resources/dictionaries/
usr/local/lib/rstudio/resources/dictionaries/en_AU.aff
usr/local/lib/rstudio/resources/dictionaries/en_AU.dic
usr/local/lib/rstudio/resources/dictionaries/en_AU.dic_delta
usr/local/lib/rstudio/resources/dictionaries/en_CA.aff
usr/local/lib/rstudio/resources/dictionaries/en_CA.dic
usr/local/lib/rstudio/resources/dictionaries/en_CA.dic_delta
usr/local/lib/rstudio/resources/dictionaries/en_GB.aff
usr/local/lib/rstudio/resources/dictionaries/en_GB.dic
usr/local/lib/rstudio/resources/dictionaries/en_GB.dic_delta
usr/local/lib/rstudio/resources/dictionaries/en_US.aff
usr/local/lib/rstudio/resources/dictionaries/en_US.dic
usr/local/lib/rstudio/resources/dictionaries/en_US.dic_delta
usr/local/lib/rstudio/resources/highlight.pack.js
usr/local/lib/rstudio/resources/R.css
usr/local/lib/rstudio/resources/highlight.styles.css
usr/local/lib/rstudio/resources/html_preview.htm
usr/local/lib/rstudio/resources/markdown_help.htm
usr/local/lib/rstudio/rstudio.png
usr/local/lib/rstudio/bin/
usr/local/lib/rstudio/bin/rstudio
usr/local/lib/rstudio/bin/rsession
usr/local/lib/rstudio/bin/rpostback
usr/local/lib/rstudio/bin/rspdflatex
usr/local/lib/rstudio/bin/postback/
usr/local/lib/rstudio/bin/postback/askpass-passthrough
usr/local/lib/rstudio/bin/postback/rpostback-askpass
usr/local/lib/rstudio/bin/postback/rpostback-editfile
usr/local/lib/rstudio/bin/postback/rpostback-gitssh
usr/local/lib/rstudio/bin/postback/rpostback-pdfviewer
usr/local/lib/rstudio/bin/r-ldpath
usr/local/lib/rstudio/bin/rstudio-backtrace.sh
usr/local/lib/rstudio/R/
usr/local/lib/rstudio/R/modules/
usr/local/lib/rstudio/R/modules/SessionWorkspace.R
usr/local/lib/rstudio/R/modules/SessionSpelling.R
usr/local/lib/rstudio/R/modules/SessionSource.R
usr/local/lib/rstudio/R/modules/SessionPackages.R
usr/local/lib/rstudio/R/modules/SessionHelp.R
usr/local/lib/rstudio/R/modules/SessionHTMLPreview.R
usr/local/lib/rstudio/R/modules/SessionFiles.R
usr/local/lib/rstudio/R/modules/SessionData.R
usr/local/lib/rstudio/R/modules/SessionConsole.R
usr/local/lib/rstudio/R/modules/SessionCodeTools.R
usr/local/lib/rstudio/R/modules/SessionAuthoring.R
usr/local/lib/rstudio/R/modules/SessionAskPass.R
usr/local/lib/rstudio/R/modules/ModuleTools.R
usr/local/lib/rstudio/R/library/
usr/local/lib/rstudio/R/library/manipulate/
usr/local/lib/rstudio/R/library/manipulate/NAMESPACE
usr/local/lib/rstudio/R/library/manipulate/DESCRIPTION
usr/local/lib/rstudio/R/library/manipulate/Meta/
usr/local/lib/rstudio/R/library/manipulate/Meta/package.rds
usr/local/lib/rstudio/R/library/manipulate/Meta/Rd.rds
usr/local/lib/rstudio/R/library/manipulate/Meta/hsearch.rds
usr/local/lib/rstudio/R/library/manipulate/Meta/links.rds
usr/local/lib/rstudio/R/library/manipulate/Meta/nsInfo.rds
usr/local/lib/rstudio/R/library/manipulate/R/
usr/local/lib/rstudio/R/library/manipulate/R/manipulate
usr/local/lib/rstudio/R/library/manipulate/R/manipulate.rdb
usr/local/lib/rstudio/R/library/manipulate/R/manipulate.rdx
usr/local/lib/rstudio/R/library/manipulate/help/
usr/local/lib/rstudio/R/library/manipulate/help/paths.rds
usr/local/lib/rstudio/R/library/manipulate/help/manipulate.rdb
usr/local/lib/rstudio/R/library/manipulate/help/manipulate.rdx
usr/local/lib/rstudio/R/library/manipulate/help/AnIndex
usr/local/lib/rstudio/R/library/manipulate/help/aliases.rds
usr/local/lib/rstudio/R/library/manipulate/html/
usr/local/lib/rstudio/R/library/manipulate/html/00Index.html
usr/local/lib/rstudio/R/library/manipulate/html/R.css
usr/local/lib/rstudio/R/library/manipulate/INDEX
usr/local/lib/rstudio/R/Options.R
usr/local/lib/rstudio/R/ServerOptions.R
usr/local/lib/rstudio/R/Tools.R
usr/local/lib/rstudio/www/
usr/local/lib/rstudio/www/.gitignore
usr/local/lib/rstudio/www/browser.htm
usr/local/lib/rstudio/www/css/
usr/local/lib/rstudio/www/css/data.css
usr/local/lib/rstudio/www/docs/
usr/local/lib/rstudio/www/docs/keyboard.htm
usr/local/lib/rstudio/www/favicon.ico
usr/local/lib/rstudio/www/images/
usr/local/lib/rstudio/www/images/buttonLeft.png
usr/local/lib/rstudio/www/images/buttonRight.png
usr/local/lib/rstudio/www/images/buttonTile.png
usr/local/lib/rstudio/www/images/favicon.ico
usr/local/lib/rstudio/www/images/offline.png
usr/local/lib/rstudio/www/images/progress_large.gif
usr/local/lib/rstudio/www/images/rstudio.png
usr/local/lib/rstudio/www/images/warning.png
usr/local/lib/rstudio/www/index.htm
usr/local/lib/rstudio/www/js/
usr/local/lib/rstudio/www/js/diff.js
usr/local/lib/rstudio/www/js/encrypt.min.js
usr/local/lib/rstudio/www/js/json2.min.js
usr/local/lib/rstudio/www/offline.htm
usr/local/lib/rstudio/www/progress.htm
usr/local/lib/rstudio/www/rstudio.css
usr/local/lib/rstudio/www/templates/
usr/local/lib/rstudio/www/templates/encrypted-sign-in.htm
usr/local/lib/rstudio/www/rstudio/
usr/local/lib/rstudio/www/rstudio/13D012D34E5F24FC13B2AD1B3C0BC395.cache.css
usr/local/lib/rstudio/www/rstudio/214F59E103CFABECB95E43F74198C6A2.cache.js
usr/local/lib/rstudio/www/rstudio/315FDB86529EE57B2CA824750C8D1643.cache.js
usr/local/lib/rstudio/www/rstudio/4DE70519304958D7D74C687480B4F827.cache.css
usr/local/lib/rstudio/www/rstudio/6A2956111C00E3DD43A71C80DF3F59B2.cache.js
usr/local/lib/rstudio/www/rstudio/74ABA17846F28AC5F14BD14E93DAC332.cache.css
usr/local/lib/rstudio/www/rstudio/7A5467957F55B057D55A47B915FA0EF7.cache.html
usr/local/lib/rstudio/www/rstudio/7F931E2B609D615C2959F6EF00A3E4F2.cache.css
usr/local/lib/rstudio/www/rstudio/8B0D223FC976870AD2B3F2A4411E5195.cache.css
usr/local/lib/rstudio/www/rstudio/90978D1C17C62ACFD065FED456EB4130.cache.css
usr/local/lib/rstudio/www/rstudio/9ED74F910351773AEEAB0FD41A44F68A.cache.js
usr/local/lib/rstudio/www/rstudio/A2EB630241A0BFE0FC6785A80D600916.cache.png
usr/local/lib/rstudio/www/rstudio/A3996CE59DD65C409F885BD35C45396A.cache.css
usr/local/lib/rstudio/www/rstudio/ABA845EFF7C837B68E481390E9E900CE.cache.js
usr/local/lib/rstudio/www/rstudio/AF39C50602922C4C6B1CBF894EF82ABB.cache.html
usr/local/lib/rstudio/www/rstudio/B0572C1351A9C9BAF9954370BA0F02BD.cache.js
usr/local/lib/rstudio/www/rstudio/ECF5A81A4944877DBD11A69B50D7610B.cache.css
usr/local/lib/rstudio/www/rstudio/clear.cache.gif
usr/local/lib/rstudio/www/rstudio/deferredjs/
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/1.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/10.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/11.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/12.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/13.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/14.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/15.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/16.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/17.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/2.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/3.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/4.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/5.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/6.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/7.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/8.cache.js
usr/local/lib/rstudio/www/rstudio/deferredjs/7A5467957F55B057D55A47B915FA0EF7/9.cache.js
usr/local/lib/rstudio/www/rstudio/hosted.html
usr/local/lib/rstudio/www/rstudio/rstudio.nocache.js
usr/local/lib/rstudio/www/WEB-INF/
usr/local/lib/rstudio/www/WEB-INF/deploy/
usr/local/lib/rstudio/www/WEB-INF/deploy/rstudio/
usr/local/lib/rstudio/www/WEB-INF/deploy/rstudio/rpcPolicyManifest/
usr/local/lib/rstudio/www/WEB-INF/deploy/rstudio/rpcPolicyManifest/manifest.txt
usr/local/lib/rstudio/www/WEB-INF/deploy/rstudio/symbolMaps/
usr/local/lib/rstudio/www/WEB-INF/deploy/rstudio/symbolMaps/7A5467957F55B057D55A47B915FA0EF7.symbolMap
usr/local/lib/rstudio/SOURCE
usr/local/lib/rstudio/NOTICE
usr/local/lib/rstudio/COPYING
usr/local/lib/rstudio/INSTALL
usr/local/lib/rstudio/README.md

Last edited by BroX; 05-03-2012 at 04:07 PM.
 
Old 05-04-2012, 09:55 AM   #11
Bindestreck
Member
 
Registered: Jul 2011
Location: Sweden
Distribution: Slackware
Posts: 333

Rep: Reputation: 73
Quote:
Originally Posted by BroX View Post
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 10:21 AM.
 
Old 05-04-2012, 10:35 AM   #12
BroX
Member
 
Registered: Oct 2003
Location: Sweden
Distribution: Slackware64-current
Posts: 755

Original Poster
Rep: Reputation: 65
Glad that you got it working. Thanks for the feedback!

MvH!
 
Old 05-14-2012, 01:57 PM   #13
BroX
Member
 
Registered: Oct 2003
Location: Sweden
Distribution: Slackware64-current
Posts: 755

Original Poster
Rep: Reputation: 65
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_}
 
1 members found this post helpful.
Old 07-06-2012, 06:24 PM   #14
BroX
Member
 
Registered: Oct 2003
Location: Sweden
Distribution: Slackware64-current
Posts: 755

Original Poster
Rep: Reputation: 65
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"
...
 
1 members found this post helpful.
Old 07-07-2012, 01:33 PM   #15
giberg
Member
 
Registered: Aug 2008
Location: Italy
Distribution: Slackware 13.0
Posts: 34

Rep: Reputation: 16
Thanks!

I tried the slackbuild and it works.
I cloned rstudio directly with "git clone" because there was a problem downloading the zip file, due to github.
 
  


Reply

Tags
rstudio, slackbuild


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Googleearth and SlackBuild multios Slackware 19 08-13-2009 03:17 AM
*.SlackBuild SolitudeSensus Programming 3 07-18-2009 12:50 AM
Is there a Slackbuild of Exaile anywhere? joutlancpa Slackware 3 04-21-2009 01:37 AM
OO 3.01 slackbuild ? brodo Slackware 4 02-01-2009 05:06 PM
SlackBuild CrEsPo Slackware 2 03-19-2006 02:58 PM


All times are GMT -5. The time now is 06:52 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration