Closed glm729 closed 2 years ago
Main dependencies are Rcpp, BH, and uuid.
I'll give it a shot, I don't know why I was able to compile it before and now cannot do so. The image in which it's being installed should be identical, but maybe I accidentally trimmed a dependency in there somewhere.
After a full rebuild, Rcpp, BH, and uuid all install without error, but bigmemory is still failing. I am not sure what is causing the error!
Besides base and dev R, devtools is also installed. Attempting to install bigparallelr, bigsnpr, and bigstatsr together shows no error besides that of bigmemory, which is the last installation attempted before exiting.
Another person report the first issue with the new version of BH (cf. https://lore.kernel.org/all/20211227112241.65b18a5d@windsurf/t/).
Maybe worth trying reinstalling a previous version of BH, e.g. install.packages("https://cran.r-project.org/src/contrib/Archive/BH/BH_1.75.0-0.tar.gz", repos = NULL)
.
Thank you, I am testing this one now. Might take a little while to build! But I tested installing BH via the command you sent, and that appears to be working. Now just to see if bigmemory will compile!
The installation is successful, thank you! Installing version 1.75 of BH results in a successful installation of the latest bigmemory from CRAN.
It might be worth opening an issue on the BH repo, so that they make sure it is fixed in the next CRAN update.
Done, I've opened a ticket in the BH repo. I will close this ticket now, and thank you again!
As best as I can tell this has nothing to do with BH as I explained over there. I recommend opening this here.
Boost upstream moves forward to newer compilation standard, some sub-libraries now need C++14. From what was mentioned over at BH (but not here, curiously) you seem to falling over auto_ptr
-- for which Boost has had a #define
to not use it for years.
@eddelbuettel I am not sure I entirely understand your comment.
I recommend opening this here.
Are you suggesting I re-open this ticket? This is fixed for my purposes, but for others, downgrading from BH 1.78 to BH 1.75 may not be optimal.
From what was mentioned over at BH (but not here, curiously) you seem to falling over
auto_ptr
Please see the original ticket description at the top of this page, in particular, the console output. The console output in the description of https://github.com/eddelbuettel/bh/issues/85 was copied from here.
This is bigmemory
. It is the package you tried to install. It set the compilation standard. That was my point: Boost and BH may require C++14 in version 1.78 (this is just a guess). You may have avoided that by staying with the older version but all of us are none the wiser because we still do not know the root cause.
And that is why I recommended to address that here.
When attempting to install the package inside an Alpine Linux-based Apptainer image, featuring R and its dependencies, compilation of the package fails. Below is the console output when running
install.packages
.What are the dependencies for this package? I may be missing a required dependency.
OS info:
R info:
Console output
``` > install.packages("bigmemory", dependencies = TRUE, Ncpus = 3L); trying URL 'https://mirror.aarnet.edu.au/pub/CRAN/src/contrib/bigmemory_4.6.1.tar.gz' Content type 'application/x-gzip' length 72353 bytes (70 KB) ================================================== downloaded 70 KB * installing *source* package ‘bigmemory’ ... ** package ‘bigmemory’ successfully unpacked and MD5 sums checked ** using staged installation checking for Sun Studio compiler... no checking for OS... Linux ** libs g++ -std=gnu++14 -I"/usr/include/R" -DNDEBUG -I../inst/include -DLINUX -I'/usr/lib/R/library/BH/include' -I'/usr/lib/R/library/uuid/include' -I'/usr/lib/R/library/Rcpp/include' -I/usr/local/include -D__MUSL__ -fpic -g -O2 -D__MUSL__ -c BigMatrix.cpp -o BigMatrix.o In file included from /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp:25, from /usr/lib/R/library/BH/include/boost/interprocess/shared_memory_object.hpp:29, from BigMatrix.cpp:13: /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:73:14: error: 'mode_t' in namespace '::' does not name a type 73 | typedef ::mode_t os_permissions_type; | ^~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:75:4: error: 'os_permissions_type' does not name a type 75 | os_permissions_type m_perm; | ^~~~~~~~~~~~~~~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:82:35: error: expected ')' before 'type' 82 | permissions(os_permissions_type type) BOOST_NOEXCEPT | ~ ^~~~~ | ) /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:117:25: error: 'os_permissions_type' has not been declared 117 | void set_permissions(os_permissions_type perm) BOOST_NOEXCEPT | ^~~~~~~~~~~~~~~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:122:4: error: 'os_permissions_type' does not name a type 122 | os_permissions_type get_permissions() const BOOST_NOEXCEPT | ^~~~~~~~~~~~~~~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp: In member function 'void boost::interprocess::permissions::set_default()': /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:100:7: error: 'm_perm' was not declared in this scope 100 | m_perm = 0644; | ^~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp: In member function 'void boost::interprocess::permissions::set_unrestricted()': /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:111:7: error: 'm_perm' was not declared in this scope 111 | m_perm = 0666; | ^~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp: In member function 'void boost::interprocess::permissions::set_permissions(int)': /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:118:7: error: 'm_perm' was not declared in this scope; did you mean 'perm'? 118 | { m_perm = perm; } | ^~~~~~ | perm In file included from /usr/lib/R/library/BH/include/boost/interprocess/shared_memory_object.hpp:29, from BigMatrix.cpp:13: /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp: In function 'boost::interprocess::file_handle_t boost::interprocess::ipcdetail::create_new_file(const char*, boost::interprocess::mode_t, const boost::interprocess::permissions&, bool)': /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp:547:64: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 547 | int ret = ::open(name, ((int)mode) | O_EXCL | O_CREAT, perm.get_permissions()); | ^~~~~~~~~~~~~~~ | set_permissions /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp:549:26: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 549 | ::fchmod(ret, perm.get_permissions()); | ^~~~~~~~~~~~~~~ | set_permissions /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp: In function 'boost::interprocess::file_handle_t boost::interprocess::ipcdetail::create_or_open_file(const char*, boost::interprocess::mode_t, const boost::interprocess::permissions&, bool)': /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp:562:63: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 562 | ret = ::open(name, ((int)mode) | O_EXCL | O_CREAT, perm.get_permissions()); | ^~~~~~~~~~~~~~~ | set_permissions /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp:564:29: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 564 | ::fchmod(ret, perm.get_permissions()); | ^~~~~~~~~~~~~~~ | set_permissions In file included from BigMatrix.cpp:13: /usr/lib/R/library/BH/include/boost/interprocess/shared_memory_object.hpp: In member function 'bool boost::interprocess::shared_memory_object::priv_open_or_create(boost::interprocess::ipcdetail::create_enum_t, const CharT*, boost::interprocess::mode_t, const boost::interprocess::permissions&)': /usr/lib/R/library/BH/include/boost/interprocess/shared_memory_object.hpp:371:30: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 371 | ::mode_t unix_perm = perm.get_permissions(); | ^~~~~~~~~~~~~~~ | set_permissions In file included from /usr/lib/R/library/BH/include/boost/interprocess/sync/posix/named_semaphore.hpp:25, from /usr/lib/R/library/BH/include/boost/interprocess/sync/posix/named_mutex.hpp:29, from /usr/lib/R/library/BH/include/boost/interprocess/sync/named_mutex.hpp:30, from BigMatrix.cpp:20: /usr/lib/R/library/BH/include/boost/interprocess/sync/posix/semaphore_wrapper.hpp: In function 'bool boost::interprocess::ipcdetail::semaphore_open(sem_t*&, boost::interprocess::ipcdetail::create_enum_t, const char*, unsigned int, const boost::interprocess::permissions&)': /usr/lib/R/library/BH/include/boost/interprocess/sync/posix/semaphore_wrapper.hpp:81:59: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 81 | handle = ::sem_open(name.c_str(), oflag, perm.get_permissions(), count); | ^~~~~~~~~~~~~~~ | set_permissions In file included from /usr/lib/R/library/BH/include/boost/smart_ptr/shared_ptr.hpp:17, from /usr/lib/R/library/BH/include/boost/shared_ptr.hpp:17, from ../inst/include/bigmemory/BigMatrix.h:10, from BigMatrix.cpp:22: /usr/lib/R/library/BH/include/boost/smart_ptr/detail/shared_count.hpp: At global scope: /usr/lib/R/library/BH/include/boost/smart_ptr/detail/shared_count.hpp:361:33: warning: 'template