Hey all,
I am getting an error when trying to install Rsubread on our server. Our cluster uses the module system and what's weird is that it only occurs with r_3.3.3 and installs properly with the msropen_3.3.2 version. All of my other packages are loaded with r_3.3.3 though so I want to install it with r_3.3.3. I have searched and found an old post on the support website (https://support.bioconductor.org/p/36641/) which seems similar but I can't figure out how to apply it to my case. Any ideas?
> biocLite("Rsubread", type="source")
BioC_mirror: https://bioconductor.org
Using Bioconductor 3.4 (BiocInstaller 1.24.0), R 3.3.3 (2017-03-06).
Installing package(s) ‘Rsubread’
trying URL 'https://bioconductor.org/packages/3.4/bioc/src/contrib/Rsubread_1.24.2.tar.gz'
Content type 'unknown' length 9277377 bytes (8.8 MB)
==================================================
downloaded 8.8 MB
* installing *source* package ‘Rsubread’ ...
@@@@@ The operating system is Linux.
** libs
icc -std=gnu99 -I/sw/R-3.3.3/lib64/R/include -DNDEBUG  -I/usr/local/include   -DMAKE_FOR_EXON -D SUBREAD_VERSION="\"Rsubread 1.24.2\"" -fpic  -g -O2 -std=c99  -c HelperFunctions.c -o HelperFunctions.o
HelperFunctions.c(822): error: incomplete type is not allowed
      struct ifreq ifr;
                   ^
HelperFunctions.c(823): error: incomplete type is not allowed
      struct ifconf ifc;
                    ^
HelperFunctions.c(835): error: incomplete type is not allowed
      const struct ifreq* const end = it + (ifc.ifc_len / sizeof(struct ifreq));
                                                                 ^
HelperFunctions.c(837): error: expression must be a pointer to a complete object type
      for (; it != end; ++it) {
                          ^
HelperFunctions.c(838): error: pointer to incomplete class type is not allowed
          strcpy(ifr.ifr_name, it->ifr_name);
                               ^
HelperFunctions.c(840): error: identifier "IFF_LOOPBACK" is undefined
              if (! (ifr.ifr_flags & IFF_LOOPBACK)) { // don't count loopback
                                     ^
HelperFunctions.c(1009): warning #266: function "strtok_r" declared implicitly
              feature_name = strtok_r(file_line,"\t",&token_temp);
                             ^
HelperFunctions.c(1009): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
              feature_name = strtok_r(file_line,"\t",&token_temp);
                                                     ^
HelperFunctions.c(1013): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
              chro_name = strtok_r(NULL,"\t", &token_temp);
                                              ^
HelperFunctions.c(1017): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
              char * start_ptr = strtok_r(NULL,"\t", &token_temp);
                                                     ^
HelperFunctions.c(1018): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
              char * end_ptr = strtok_r(NULL,"\t", &token_temp);
                                                   ^
HelperFunctions.c(1039): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
              char * strand_str = strtok_r(NULL,"\t", &token_temp);
                                                      ^
HelperFunctions.c(1048): warning #266: function "strtok_r" declared implicitly
              chro_name = strtok_r(file_line,"\t",&token_temp);
                          ^
HelperFunctions.c(1048): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
              chro_name = strtok_r(file_line,"\t",&token_temp);
                                                  ^
HelperFunctions.c(1049): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
              strtok_r(NULL,"\t", &token_temp);// source
                                  ^
HelperFunctions.c(1050): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
              char * feature_type = strtok_r(NULL,"\t", &token_temp);// feature_type
                                                        ^
HelperFunctions.c(1053): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
                  char * start_ptr = strtok_r(NULL,"\t", &token_temp);
                                                         ^
HelperFunctions.c(1054): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
                  char * end_ptr = strtok_r(NULL,"\t", &token_temp);
                                                       ^
HelperFunctions.c(1080): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
                  strtok_r(NULL,"\t", &token_temp);// score
                                      ^
HelperFunctions.c(1081): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
                  is_negative_strand = ('-' == (strtok_r(NULL,"\t", &token_temp)[0]));//strand
                                                                    ^
HelperFunctions.c(1081): error: expression must have arithmetic type
                  is_negative_strand = ('-' == (strtok_r(NULL,"\t", &token_temp)[0]));//strand
                                               ^
HelperFunctions.c(1082): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
                  strtok_r(NULL,"\t",&token_temp);    // "frame"
                                     ^
HelperFunctions.c(1083): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
                  char * extra_attrs = strtok_r(NULL,"\t",&token_temp);   // name_1 "val1"; name_2 "val2"; ...
                                                          ^
HelperFunctions.c(1134): warning #266: function "strtok_r" declared implicitly
          char * anno_chr = strtok_r(fl, ",", &sam_chr);
                            ^
HelperFunctions.c(1134): warning #167: argument of type "char **" is incompatible with parameter of type "char *"
          char * anno_chr = strtok_r(fl, ",", &sam_chr);
                                              ^
compilation aborted for HelperFunctions.c (code 2)
make: *** [HelperFunctions.o] Error 2
ERROR: compilation failed for package ‘Rsubread’
* removing ‘/gscratch/home/achits/R/x86_64-pc-linux-gnu-library/3.3/Rsubread’
* restoring previous ‘/gscratch/home/achits/R/x86_64-pc-linux-gnu-library/3.3/Rsubread’
The downloaded source packages are in
    ‘/tmp/Rtmp1Zc3Sl/downloaded_packages’
installation path not writeable, unable to update packages: boot, cluster,
  foreign, lattice, MASS, Matrix, mgcv, Rcpp, rpart, survival
Warning message:
In install.packages(pkgs = doing, lib = lib, ...) :
  installation of package ‘Rsubread’ had non-zero exit status
> sessionInfo()
R version 3.3.3 (2017-03-06)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)
locale:
[1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
[3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
[5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
[7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
[9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
other attached packages:
[1] BiocInstaller_1.24.0
loaded via a namespace (and not attached):
[1] tools_3.3.3
                    
                
                
That did not work unfortunately. Still got a very similar error.
[n2232 ~]$ gcc --version gcc (GCC) 6.2.0 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [achits@n2232 ~]$ R CMD INSTALL --clean Rsubread_1.28.1.tar.gz * installing to library ‘/gscratch/home/achits/R/x86_64-pc-linux-gnu-library/3.3’ * installing *source* package ‘Rsubread’ ... @@@@@ The operating system is Linux. ** libs gcc -I/sw/R-3.3.3/lib64/R/include -DNDEBUG -I/usr/local/include -DMAKE_FOR_EXON -D SUBREAD_VERSION="\"Rsubread 1.28.1\"" -w -fpic -g -O2 -std=c99 -c HelperFunctions.c -o HelperFunctions.o HelperFunctions.c: In function ‘mac_str’: HelperFunctions.c:824:18: error: storage size of ‘ifr’ isn’t known struct ifreq ifr; ^~~ HelperFunctions.c:825:19: error: storage size of ‘ifc’ isn’t known struct ifconf ifc; ^~~ HelperFunctions.c:837:64: error: invalid application of ‘sizeof’ to incomplete type ‘struct ifreq’ const struct ifreq* const end = it + (ifc.ifc_len / sizeof(struct ifreq)); ^~~~~~ HelperFunctions.c:839:23: error: increment of pointer to an incomplete type ‘struct ifreq’ for (; it != end; ++it) { ^~ HelperFunctions.c:840:32: error: dereferencing pointer to incomplete type ‘struct ifreq’ strcpy(ifr.ifr_name, it->ifr_name); ^~ HelperFunctions.c:842:36: error: ‘IFF_LOOPBACK’ undeclared (first use in this function) if (! (ifr.ifr_flags & IFF_LOOPBACK)) { // don't count loopback ^~~~~~~~~~~~ HelperFunctions.c:842:36: note: each undeclared identifier is reported only once for each function it appears in HelperFunctions.c: In function ‘load_features_annotation’: HelperFunctions.c:1083:67: error: subscripted value is neither array nor pointer nor vector is_negative_strand = ('-' == (strtok_r(NULL,"\t", &token_temp)[0]));//strand ^ make: *** [HelperFunctions.o] Error 1 ERROR: compilation failed for package ‘Rsubread’ * removing ‘/gscratch/home/achits/R/x86_64-pc-linux-gnu-library/3.3/Rsubread’I don't know what caused this problem. You tried to install Rsubread version 1.28.1 on R 3.3.3, but this version of Rsubread is released with R 3.4.3. Not sure if it is the difference in R version causing this compilation problem.
Yeah that worked. Probably a much better idea. Thanks for the input
Alex
Hello. I have encountered the same issue. I have tried the approach of using gcc to compile the package but unfortunately it doesn't work. Can you let me know how you resolved this problem please?
Many thanks,
Tom
If the issue you encountered is the same as the issue reported above, then have you checked if your Rsubread version matches the version of R?