[R-pkg-devel] gdb availability on r-devel-linux-x86_64-fedora-gcc

Simon Urbanek @|mon@urb@nek @end|ng |rom R-project@org
Sun Aug 13 23:10:53 CEST 2023



> On 14/08/2023, at 5:25 AM, Jamie Lentin <lentinj using shuttlethread.com> wrote:
> 
> Thanks both!
> 
> On 2023-08-12 23:52, Uwe Ligges wrote:
>> On 12.08.2023 23:19, Dirk Eddelbuettel wrote:
>>> On 12 August 2023 at 18:12, Uwe Ligges wrote:
>>> | On 12.08.2023 15:10, Jamie Lentin wrote:
>>> | > The system call in question is done by the TMB package[2], and not ours
>>> | > to tinker with:
>>> | >
>>> | >    cmd <- paste("R --vanilla < ",file," -d gdb --debugger-args=\"-x",
>>> | >                 gdbscript,"\"")
>>> | >    txt <- system(cmd,intern=TRUE,ignore.stdout=FALSE,ignore.stderr=TRUE)
>>> | >
>>> | > My only vaguely reasonable guess is that gdb isn't available on the host
>>> | > in question (certainly R will be!). How likely is this? Is it worth
>>> | > trying to resubmit with the call wrapped with an "if (gdb is on the path)"?
>>> |
>>> | I guess it is really not available as that system got an update.
>>> | Note that you package does not declare any SystemRequirements. Please do
>>> | so and mention gdb.
> 
> It's TMB::gdbsource() that's calling system("R -d gdb"), so presumably the SystemRequirements should live there rather than gadget3? I can raise an issue suggesting this.
> 
>>> | Wrapping it in "if (gdb is on the path)" seems a good solution.
>>> Seconded esp as some systems may have lldb instead of gdb, or neither.
>>> Adding a simple `if (nzchar(Sys.which("gdb")))` should get you there.
>>> Dirk
>> Note that also
>> 1. The machine does not have R on the path (but Rdev)
> 
> Okay, I'll check for "all(nzchar(Sys.which(c('gdb', 'R'))))". This is overkill somewhat, and the example won't run in some environments that TMB::gdbsource() should work in. However, at least it'll check it does work for the relatively default case.
> 

Please note that it should not be calling some random program called R - it should be calling the R instance it's running in (as Uwe pointed out there may be several) so possibly something like file.path(R.home(),"bin","R")

Cheers,
Simon


>> 2. you need to use a current pandoc. Citing Professor Ripley: "The
>> platforms failing are using pandoc 3.1.6 or (newly updated, M1mac)
>> 3.1.6.1"
> 
> I'll be sure to try upgrading before resubmitting.
> 
> Thanks again for your help!
> 
>> Best,
>> Uwe Ligges
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> 



More information about the R-package-devel mailing list