On Jul 14, 2014, at 4:13 PM, John Fox <j...@mcmaster.ca> wrote: > Dear Simon and list members, > > As many of you are aware, when X11 isn't installed on Mac OS X, loading the > tcltk package produces an error, with a message that many users find > cryptic. There was yet another instance of this problem reported to the list > today. > > I'm interested in the issue because the Rcmdr package uses tcltk and thus > fails to load when X11 is absent. Rcmdr users tend to be inexperienced and > so, unless they find their way to the Rcmdr installation webpage, where > detailed installation instructions are provided, they tend to be stymied by > the problem. > > If I could, I'd intercept the problem by checking capabilities()["X11"] in > the Rcmdr .onLoad() or .onAttach() function, but because the Rcmdr package > imports the tcltk namespace, the error occurs before these startup functions > are executed -- a chicken-and-egg problem. > > It occurs to me that tcltk could fail more gracefully on Mac OS X when X11 > is absent, perhaps popping up a webpage in a browser with instructions and a > link for installing XQuartz. I'd do this myself in the Rcmdr package if I > could. Or tcltk could check for the presence of X11 and not try to start it > if it's absent, reporting a warning rather than throwing an error. > > Alternatively, I'd be grateful if someone could suggest how I might detect > the problem in the Rcmdr package before loading fails. The only thing that I > could think of was writing a separate RcmdrInstall package that bypasses > tcltk, but that would be awkward and would only help users who discovered > that RcmdrInstall exists. > > Thanks, > John
John, Is there someplace in your startup process where you could run code along the lines of: if (grepl("apple", R.version$platform) & length(list.files("/opt/X11/bin", pattern = "Xquartz")) == 0) { cat("X11 is required. Please visit http://xquartz.macosforge.org to download and install Xquartz.") stop() } The above code will check to see if the user is running R on OS X and also if the Xquartz binary is present in the default location. Not sure if this is helpful. Regards, Marc Schwartz _______________________________________________ R-SIG-Mac mailing list R-SIG-Mac@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-mac