Skip to content

Enable SAS binaries on Linux#63

Open
michaelmayer2 wants to merge 1 commit into
sassoftware:mainfrom
michaelmayer2:fix-sas-binaries-linux
Open

Enable SAS binaries on Linux#63
michaelmayer2 wants to merge 1 commit into
sassoftware:mainfrom
michaelmayer2:fix-sas-binaries-linux

Conversation

@michaelmayer2
Copy link
Copy Markdown

With a current version of R-swat on Linux I get

> swat::download_sas_binaries()
trying URL '[redacted]'
Content type 'application/octet-stream' length 45032825 bytes (42.9 MB)
==================================================
downloaded 42.9 MB

Restart your R session and reload swat to enable binary connection
Warning message:
In file.rename(file.path(temp, installed_lib_paths), file.path(libpath,  :
  cannot rename file '/tmp/RtmpnOnRG3/R-swat-1.10.0/inst/libs' to '/home/mmwork/R/x86_64-pc-linux-gnu-library/4.5/swat/libs', reason 'Invalid cross-device link'

The PR is fixing this issue by replacing the file.rename() command in helper.R into a file.copy() and dir.create() function call.

Since one of the binaries also depends on NUMA, a SystemRequirements field for NUMA is added as well. Once approved, https://github.com/rstudio/r-system-requirements/ can be updated so that essential system dependencies for the binaries are automatically picked up when run by tools such as r-lib/pak or the same information exposed by Posit Package Manager.

Furthermore, when using the SAS binaries, checking ldd in the libs folder of the installed R package reveals more missing DLL's that comprise additional SystemRequirements, e.g.

        libdfssys-1.3.so => not found
        libdfsfio-1.5.so => not found
        libdflic-1.4.so => not found
        libdfschr-1.4.so => not found
        libdfsfio-1.5.so => not found
        libdfssys-1.3.so => not found
        libdfschr-1.4.so => not found
        libdfssys-1.3.so => not found
        libdfschr-1.4.so => not found
./libicui18n.so: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/mmwork/R/x86_64-pc-linux-gnu-library/4.5/swat/libs/./libicuuc.so)
./libicuuc.so: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by ./libicuuc.so)
        libarrow.so.14 => not found
        libmariadb.so.3 => not found
        libmariadb.so.3 => not found
        libnlplib.so => not found
        libtorch.so => not found
        libtorch_cpu.so => not found
        libtorch_cuda.so => not found
        libc10.so => not found
        libc10_cuda.so => not found
        libnlplib.so => not found
        librdkafka.so.1 => not found
        libionc.so.1.0.3 => not found
        libnvidia-ml.so.1 => not found
        libcuda.so.1 => not found
        libhiredis.so.1.1.0 => not found
        libhiredis_ssl.so.1.1.0 => not found
        librdkafka.so.1 => not found
        librabbitmq.so.4 => not found  

Not sure how critical these are for the general functioning of the binaries and the R package.

@semioticrobotic
Copy link
Copy Markdown
Member

Thanks for offering this, @michaelmayer2! Could someone from the @sassoftware/python-swat team please take a look when you have a moment?

… doing cross-device file.rename()

- Add NUMA to SystemRequirements

Signed-off-by: Michael Mayer <michael.mayer@posit.co>
@michaelmayer2 michaelmayer2 force-pushed the fix-sas-binaries-linux branch from 1636a5d to d42b898 Compare May 19, 2026 14:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants