Can't install rAMPL library on R

Hello.

I tried to install the rAMPL library following the instructions from the installation guide :

install.packages("Rcpp", type="source")
install.packages("https://ampl.com/dl/API/rAMPL.tar.gz", repos=NULL, INSTALL_opts=c("--no-multiarch", "--no-staged-install"))

but I got the error “Warning in install.packages :
installation of package ‘/tmp/RtmpMKXIvG/downloaded_packages/rAMPL.tar.gz’ had non-zero exit status”

install.packages("Rcpp", type="source")
Installing package into ‘/home/user/R/x86_64-pc-linux-gnu-library/4.4’
(as ‘lib’ is unspecified)
trying URL 'https://packagemanager.posit.co/cran/latest/src/contrib/Rcpp_1.0.13.tar.gz'
Content type 'binary/octet-stream' length 3438451 bytes (3.3 MB)
==================================================
downloaded 3.3 MB

* installing *source* package ‘Rcpp’ ...
** package ‘Rcpp’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
using C++ compiler: ‘g++ (GCC) 14.2.1 20240910’
g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -I../inst/include/  -I/usr/local/include    -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects   -c api.cpp -o api.o
g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -I../inst/include/  -I/usr/local/include    -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects   -c attributes.cpp -o attributes.o
g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -I../inst/include/  -I/usr/local/include    -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects   -c barrier.cpp -o barrier.o
g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -I../inst/include/  -I/usr/local/include    -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects   -c date.cpp -o date.o
g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -I../inst/include/  -I/usr/local/include    -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects   -c module.cpp -o module.o
g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -I../inst/include/  -I/usr/local/include    -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects   -c rcpp_init.cpp -o rcpp_init.o
g++ -std=gnu++17 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o Rcpp.so api.o attributes.o barrier.o date.o module.o rcpp_init.o -L/usr/lib64/R/lib -lR
installing to /home/user/R/x86_64-pc-linux-gnu-library/4.4/00LOCK-Rcpp/00new/Rcpp/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (Rcpp)

The downloaded source packages are in
	‘/tmp/RtmpMKXIvG/downloaded_packages’
> install.packages("https://ampl.com/dl/API/rAMPL.tar.gz", repos=NULL, INSTALL_opts=c("--no-multiarch", "--no-staged-install"))
Installing package into ‘/home/user/R/x86_64-pc-linux-gnu-library/4.4’
(as ‘lib’ is unspecified)
trying URL 'https://ampl.com/dl/API/rAMPL.tar.gz'
Content type 'application/x-gzip' length 5937422 bytes (5.7 MB)
==================================================
downloaded 5.7 MB

* installing *source* package ‘rAMPL’ ...
** using non-staged installation
** libs
using C++ compiler: ‘g++ (GCC) 14.2.1 20240910’
g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -I../src/include -Wall -I'/home/user/R/x86_64-pc-linux-gnu-library/4.4/Rcpp/include' -I/usr/local/include    -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects   -c RcppExports.cpp -o RcppExports.o
g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -I../src/include -Wall -I'/home/user/R/x86_64-pc-linux-gnu-library/4.4/Rcpp/include' -I/usr/local/include    -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects   -c rampl.cpp -o rampl.o
In file included from rbasicentity.h:8,
                 from rvar_entity.h:7,
                 from rampl.h:7,
                 from rampl.cpp:1:
utils.h: In instantiation of ‘Rcpp::XPtr<Class> getObj(const std::string&, SEXP) [with T = REnvironment; std::string = std::__cxx11::basic_string<char>; SEXP = SEXPREC*]’:
rampl.cpp:73:81:   required from here
   73 | RAMPL::RAMPL(SEXP s): OHandler(NULL), EHandler(NULL), _impl(getObj<REnvironment>("Environment", s)->_impl) {
      |                                                             ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
utils.h:13:13: error: format not a string literal and no format arguments [-Werror=format-security]
   13 |     Rf_error( (std::string("object is not of the type ")+type).c_str() );
      |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: some warnings being treated as errors
make: *** [/usr/lib64/R/etc/Makeconf:204: rampl.o] Error 1
ERROR: compilation failed for package ‘rAMPL’
* removing ‘/home/user/R/x86_64-pc-linux-gnu-library/4.4/rAMPL’
Warning in install.packages :
  installation of package ‘/tmp/RtmpMKXIvG/downloaded_packages/rAMPL.tar.gz’ had non-zero exit status

Some info about my R installation:

version
               _                           
platform       x86_64-pc-linux-gnu         
arch           x86_64                      
os             linux-gnu                   
system         x86_64, linux-gnu           
status                                     
major          4                           
minor          4.1                         
year           2024                        
month          06                          
day            14                          
svn rev        86737                       
language       R                           
version.string R version 4.4.1 (2024-06-14)
nickname       Race for Your Life  

Some info about my system:

inxi -zv8                                                        ✔ 
System:
  Kernel: 6.10.13-3-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
    clocksource: tsc avail: hpet,acpi_pm
Desktop: GNOME v: 46.5 tk: GTK v: 3.24.43 wm: gnome-shell with: ulauncher
    tools: gsd-screensaver-proxy dm: GDM v: 46.2 Distro: Manjaro
    base: Arch Linux

Thank you

Hello @Bastian22,

Indeed! Thank you for reporting this bug.

It seems that the new version of R (in particular using -std=gnu++17) caused a format-security warning which we handle as an error. We adjusted the source code and now it should work.

If you encounter further issues, please let us know.

Best wishes

1 Like

Thank you so much, it worked!