diff --git a/rstudio-2023.12.1-402-0.build.sh b/rstudio-2023.12.1-402-0.build.sh new file mode 100755 index 0000000..b005c2c --- /dev/null +++ b/rstudio-2023.12.1-402-0.build.sh @@ -0,0 +1,73 @@ +#! /bin/bash + +# use the debian build from rstudio site (Ubuntu 20+/Debian 11+) + +PKG=rstudio +VERSION=2023.12.1-402 +VERSIONP=${VERSION/-/+} # just brilliant ! +BUILD=0 + +PREFIX=/pkg/$PKG-$VERSION-$BUILD +if [ -n "$TESTING" ]; then PREFIX=/scratch/local2/$PKG-$VERSION-$BUILD ; fi + +set -xe +umask 022 + +BUILD_TMPDIR=/dev/shm/$PKG-$VERSION-$BUILD.$USER.build.tmp +test -d $BUILD_TMPDIR && ( chmod -R u+rwx $BUILD_TMPDIR || true ; rm -rf $BUILD_TMPDIR ) +mkdir -p $BUILD_TMPDIR/home +export TMPDIR=$BUILD_TMPDIR +export HOME=$BUILD_TMPDIR/home + +# mind the PATH ... +# ---------------------------- +# it should work with: +# prun R4 rstudio +# xfce launcher +# own R on the path + +mkdir -p $PREFIX +cat >$PREFIX/profile <<-EOF + PATH=$PREFIX/bin:\$PATH:/usr/local/package/bin + if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH ; fi +EOF +. $PREFIX/profile + +BUILD=$PREFIX/build + +mkdir -p $BUILD +cd $BUILD + +# orig: https://download1.rstudio.org/electron/focal/amd64/rstudio-2023.12.1-402-amd64-debian.tar.gz +BEEHIVE=https://beehive.molgen.mpg.de/205ead7b954470207e8cdb6614d68172/rstudio-2023.12.1-402-amd64-debian.tar.gz + +test -e rstudio-$VERSION-amd64-debian.tar.gz || wget -nv $BEEHIVE +test -d rstudio-$VERSIONP || tar -xf rstudio-$VERSION-amd64-debian.tar.gz + +mkdir ${PREFIX}/bin + +mv -v rstudio-$VERSIONP/* ../bin + +cat >$PREFIX/bin/rstudio-nv <<-'EOF' + #! /bin/bash + + # This allows using rstudio on a compute server, when the users machine + # has the nvidia driver loaded and rstudio gets confused. + # Drawback, this only works if not part of a ssh hopp along chain. + + if [ -n "$SSH_CLIENT" ]; then + REMOTEIP=${SSH_CLIENT%% *} + MXGFX=$(ssh $REMOTEIP readlink -f /node/usr_share_mxgfx | grep nvidia) + if [ -n "$MXGFX" ]; then + echo "# offering $MXGFX to desktop client..." + LD_LIBRARY_PATH=$MXGFX/lib${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH + export LD_LIBRARY_PATH + fi + fi + + exec rstudio "${@+$@}" +EOF + +chmod +x $PREFIX/bin/rstudio-nv + +exit