From 11b11e93fbdb29be69a936950438ed1cbea34a11 Mon Sep 17 00:00:00 2001 From: Boud Roukema Date: Wed, 9 Sep 2020 10:08:20 +0200 Subject: R is built without tcl/tk (for GUI) dependence Tcl/Tk are a set of tools to provide Graphic User Interface (GUI) support in some software. But they are not yet natively built within Maneage, primarily because we have higher-priority work right now. GUI tools in general aren't high on our priority list right now because GUI tools are generally good for human interaction (which is contrary to the reproducible philosophy), not automatic analysis (a core concept in reproducibility). So even later, when we do include Tcl/Tk in Maneage, their direct usage will be discouraged. Until this commit, because we don't yet build Tcl/Tk, the default maneage install of the statistical package R failed on a Debian Stretch, with 6227 repeats of the line: '/usr/lib//tcl8.5/tclConfig.sh: line 2: dpkg-architecture: command not found' To fix this problem (atleast until Tcl/Tk is installed within Maneage), R is now configured with the '--without-tcltk' option which fixed the problem. Please see the description above the R installation instructions in 'reproduce/software/make/high-level.mk' for more. --- reproduce/software/make/high-level.mk | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk index 3c5e518..c3bda3e 100644 --- a/reproduce/software/make/high-level.mk +++ b/reproduce/software/make/high-level.mk @@ -1181,6 +1181,24 @@ $(ibidir)/pcre-$(pcre-version): , V=1 -j$(numthreads)) echo "Perl Compatible Regular Expressions $(pcre-version)" > $@ +# Comment on building R without GUI support ('--without-tcltlk') +# +# Tcl/Tk are a set of tools to provide Graphic User Interface (GUI) support +# in some software. But they are not yet natively built within Maneage, +# primarily because we have higher-priority work right now (if anyone is +# interested, they can ofcourse contribute!). GUI tools in general aren't +# high on our priority list right now because they are generally good for +# human interaction (which is contrary to the reproducible philosophy: +# there will always be human-error and frustration, for example in GUI +# tools the best level of reproducibility is statements like this: "move +# your mouse to button XXX, then click on menu YYY and etc"). A robust +# reproducible solution must be done automatically. +# +# If someone wants to use R's GUI functionalities while investigating for +# their analysis, they can do the GUI part on their host OS +# implementation. Later, they can bring the finalized source into Maneage +# to be automatically run in Maneage. This will also be the recommended way +# to deal with GUI tools later when we do install them within Maneage. $(ibidir)/R-$(R-version): \ $(ibidir)/pcre-$(pcre-version) \ $(ibidir)/cairo-$(cairo-version) \ @@ -1204,6 +1222,7 @@ $(ibidir)/R-$(R-version): \ --with-pcre1 \ --disable-java \ --with-readline \ + --without-tcltk \ --disable-openmp make -j$(numthreads) make install -- cgit v1.2.1