I am out of date on this, but when I looked into it last time (years ago) BH only included headers and it used to be that the graph part of boost went beyond headers only. If it's headers-only perhaps the danger is reduced.
On Mon, Mar 25, 2019 at 11:39 AM Vincent Carey <st...@channing.harvard.edu> wrote: > > > On Mon, Mar 25, 2019 at 10:57 AM Kasper Daniel Hansen < > kasperdanielhan...@gmail.com> wrote: > >> There are no issues with depending on CRAN packages. >> >> But I would advise caution. On one hand it is great that boost gets >> updated regularly. On the other hand, it could lead to incompatibilities >> with RBGL and then you have to update that package rapidly. Also - and this >> is something we could consider addressing - the CRAN imports of Bioc are >> not locked down. By which I mean, you release RBGL in Bioconductor X. After >> release (or perhaps even after next Bioc release) BH is updated in a >> non-backwards compatible way and now the old code is hosed. Having said >> that, so far we have been ignoring it (I think) and the same issue arises >> with Rcpp. >> >> Do you have any idea how often Boost breaks compatibility? I would >> strongly advise to download the last couple of BH releases and test with >> RBGL. While kind of irrelevant in some sense, it will give you an idea of >> how fast Boost / BH evolves. >> > > These are good points. In this particular case I believe that Boost Graph > Library evolves very slowly and > backwards compatibility is not endangered. It is an early component of > Boost. On the other hand, BH has > no obligation to provide the graph (BGL) headers, and I believe that in > early incarnations of BH, some headers > needed for RBGL were not there. So there are maintenance vulnerabilities > to this approach, but I think it is better > if we stick with the maintained BH as long as this works. Should this > approach fail (and your scenario of > CRAN package changes breaking bioc must be kept in mind) we can go back to > tarball distribution if necessary. > > >> >> On Mon, Mar 25, 2019 at 8:03 AM Martin Morgan <mtmorgan.b...@gmail.com> >> wrote: >> >>> ...also Bioconductor knows all about CRAN -- see the repositories >>> returned by >>> >>> > BiocManager::repositories() >>> BioCsoft >>> "https://bioconductor.org/packages/3.9/bioc" >>> BioCann >>> "https://bioconductor.org/packages/3.9/data/annotation" >>> BioCexp >>> "https://bioconductor.org/packages/3.9/data/experiment" >>> BioCworkflows >>> "https://bioconductor.org/packages/3.9/workflows" >>> CRAN >>> "https://cran.rstudio.com" >>> > >>> >>> On 3/25/19, 7:42 AM, "Martin Morgan" <mtmorgan.b...@gmail.com> wrote: >>> >>> I think the usual incantation in configure files is ${R_HOME}/bin/R >>> ... R_HOME is the path to R set by the command that starts to build or >>> install the package, whereas Rscript is found on the search path. >>> >>> Martin >>> >>> On 3/25/19, 7:33 AM, "Bioc-devel on behalf of Vincent Carey" < >>> bioc-devel-boun...@r-project.org on behalf of st...@channing.harvard.edu> >>> wrote: >>> >>> The error on linux for 3.9: >>> >>> >>> ############################################################################## >>> >>> ############################################################################## >>> ### >>> ### Running command: >>> ### >>> ### /home/biocbuild/bbs-3.9-bioc/R/bin/R CMD INSTALL RBGL >>> ### >>> >>> ############################################################################## >>> >>> ############################################################################## >>> >>> >>> * installing to library ‘/home/biocbuild/bbs-3.9-bioc/R/library’ >>> * installing *source* package ‘RBGL’ ... >>> ** using staged installation >>> checking R package BH ... no >>> configure: error: R package BH not found. >>> ERROR: configuration failed for package ‘RBGL’ >>> * removing ‘/home/biocbuild/bbs-3.9-bioc/R/library/RBGL’ >>> * restoring previous >>> ‘/home/biocbuild/bbs-3.9-bioc/R/library/RBGL’ >>> >>> Note that BiocParallel also uses BH and succeeds >>> >>> configure: creating ./config.status >>> config.status: creating src/Makevars >>> ** libs >>> g++ -std=gnu++11 -I"/home/biocbuild/bbs-3.9-bioc/R/include" >>> -DNDEBUG >>> -I"/home/biocbuild/bbs-3.9-bioc/R/library/BH/include" >>> -I/usr/local/include -fpic -g -O2 -Wall -c ipcmutex.cpp -o >>> ipcmutex.o >>> In file included from >>> >>> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/integer_log2.hpp:19:0, >>> from >>> >>> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/large_arithmetic.hpp:19, >>> from >>> >>> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/const_mod.hpp:23, >>> from >>> >>> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/seed_impl.hpp:26, >>> from >>> >>> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/mersenne_twister.hpp:30, >>> from >>> >>> /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/uuid/random_generator.hpp:17, >>> >>> So could it be an issue with the configure script? >>> >>> >>> On Mon, Mar 25, 2019 at 7:22 AM Samuela Pollack < >>> spoll...@jimmy.harvard.edu> >>> wrote: >>> >>> > Dear Bioconductor, >>> > >>> > The devel version of package RBGL is flunking build. >>> > >>> > This package has been modified to include header files in the >>> CRAN >>> > package 'BH' instead of using a local tarball of the header >>> files. We >>> > consider this an improvement because the 'BH' maintainers >>> update their >>> > package every time a new version of boost is released, but >>> rebuilding >>> > the included tarball is unreliable. >>> > >>> > Is it possible to request inclusion of a CRAN package >>> dependency in a >>> > Bioconductor package? If not, how would Bioconductor recommend >>> we handle >>> > this? >>> > >>> > (Full disclosure: the BH package has all the header files for >>> all of >>> > boost. This is a lot more disk space then we need, because we >>> only need >>> > the BGL.) >>> > >>> > thanks, >>> > >>> > - Sam >>> > >>> > >>> > >>> > On 3/22/19 7:28 AM, Morgan, Martin wrote: >>> > > External Email - Use Caution >>> > > >>> > > Thanks for the explanation and exemplary detective work. >>> Will you push >>> > these changes to the release and devel branches of RBGL? I've >>> given you >>> > permissions... Martin >>> > > >>> > > On 3/22/19, 5:15 AM, "Samuela Pollack" < >>> spoll...@jimmy.harvard.edu> >>> > wrote: >>> > > >>> > > We have a temporary fix which we believe will alleviate >>> the >>> > difficulty. >>> > > >>> > > The only routine in RBGL that does not compile under >>> the LLVM-9.0 >>> > system >>> > > is the routine that implements betweenness connectivity >>> clustering. >>> > This >>> > > seems to be a rarely-used routine, so we have >>> temporarily removed it >>> > > from RBGL and put in a message explaining how users may >>> replace it >>> > easily. >>> > > >>> > > I have contacted Professor Jeremy Siek at in >>> Bloomington to discuss >>> > how >>> > > best to proceed. It is possible this will have to be >>> fixed in BGL, >>> > > probably not in time for boost 1.70. >>> > > >>> > > For clarity: the incompatibility is not in clang. The >>> > incompatibility is >>> > > in the llvm c++ standard library. Mac users who build >>> with clang >>> > will be >>> > > fine, as long as they don't link in the llvm C++ >>> stdlib, which most >>> > > wouldn't think to do and Apple does not encourage. >>> > > >>> > > We hope this will be sufficient for now. >>> > > >>> > > - Sam >>> > > >>> > > >>> > > On 3/22/19 4:18 AM, Morgan, Martin wrote: >>> > > > External Email - Use Caution >>> > > > >>> > > > What's the status for RBGL? >>> > > > >>> > > > Thanks, Martin >>> > > > >>> > > > On 3/22/19, 3:57 AM, "Prof Brian Ripley" < >>> rip...@stats.ox.ac.uk> >>> > wrote: >>> > > > >>> > > > clang 8.0.0 is now released, and these fail >>> there too (and >>> > break about >>> > > > 50 CRAN packages which depend on them). >>> > > > >>> > > > Reminder: this is with clang's native libc++, as >>> documented >>> > at >>> > > > >>> > >>> https://www.stats.ox.ac.uk/pub/bdr/Rconfig/r-devel-linux-x86_64-fedora-clang >>> > > > >>> > > > We really need fixes in both 3.8 and 3.9. >>> > > > >>> > > > BDR >>> > > > >>> > > > On 28/02/2019 18:52, Prof Brian Ripley wrote: >>> > > > > These packages fail to install with clang >>> 8.0.0rc3, which >>> > is supposed to >>> > > > > be near-final (it is overdue for release). >>> (AFAIR they >>> > did install with >>> > > > > rc1.) In both cases the problems are with >>> Boost. >>> > > > > >>> > > > > RBGL 1.95.1 >>> > > > > >>> > > > > In file included from bbc.cpp:1: >>> > > > > In file included from ./RBGL.hpp:7: >>> > > > > In file included from >>> > /usr/local/clang8/bin/../include/c++/v1/iostream:38: >>> > > > > In file included from >>> > /usr/local/clang8/bin/../include/c++/v1/ios:216: >>> > > > > In file included from >>> > /usr/local/clang8/bin/../include/c++/v1/__locale:15: >>> > > > > In file included from >>> > /usr/local/clang8/bin/../include/c++/v1/string:505: >>> > > > > In file included from >>> > > > > >>> /usr/local/clang8/bin/../include/c++/v1/string_view:176: >>> > > > > In file included from >>> > /usr/local/clang8/bin/../include/c++/v1/__string:57: >>> > > > > >>> /usr/local/clang8/bin/../include/c++/v1/algorithm:2494:5: >>> > error: >>> > > > > static_assert >>> > > > > failed due to requirement >>> > > > > >>> > > > > >>> > >>> '__is_forward_iterator<boost::detail::undirected_edge_iter<std::__1::__list_iterator<boost::list_edge<unsigned >>> > > > > >>> > > > > long, >>> boost::property<boost::edge_weight_t, double, >>> > > > > >>> boost::property<boost::edge_centrality_t, double, >>> > > > > boost::no_property> > >, >>> > > > > void *>, >>> > boost::detail::edge_desc_impl<boost::undirected_tag, >>> > > > > unsigned >>> > > > > long>, long> >::value' >>> "std::max_element requires a >>> > ForwardIterator" >>> > > > > >>> > static_assert(__is_forward_iterator<_ForwardIterator>::value, >>> > > > > ^ >>> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> > > > > >>> > >>> rbgl_trimmed_boost_1_61_0/boost/graph/bc_clustering.hpp:132:26: note: in >>> > > > > instantiation of function template >>> specialization >>> > > > > >>> > > > > >>> > >>> 'std::__1::max_element<boost::detail::undirected_edge_iter<std::__1::__list_iterator<boost::list_edge<unsigned >>> > > > > >>> > > > > long, >>> boost::property<boost::edge_weight_t, double, >>> > > > > >>> boost::property<boost::edge_centrality_t, double, >>> > > > > boost::no_property> > >, >>> > > > > void *>, >>> > boost::detail::edge_desc_impl<boost::undirected_tag, >>> > > > > unsigned >>> > > > > long>, long>, >>> > > > > >>> > > > > >>> > >>> boost::indirect_cmp<boost::adj_list_edge_property_map<boost::undirected_tag, >>> > > > > >>> > > > > double, double &, unsigned long, >>> > > > > boost::property<boost::edge_weight_t, >>> > > > > double, >>> boost::property<boost::edge_centrality_t, >>> > double, >>> > > > > boost::no_property> >, >>> boost::edge_centrality_t>, >>> > > > > std::__1::less<double> > >>> > > > > >' requested here >>> > > > > edge_descriptor e = >>> *max_element(edges_iters.first, >>> > > > > edges_iters.seco... >>> > > > > >>> > rbgl_trimmed_boost_1_61_0/boost/graph/bc_clustering.hpp:146:3: >>> note: in >>> > > > > instantiation of function template >>> specialization >>> > > > > >>> > > > > >>> > >>> 'boost::betweenness_centrality_clustering<boost::adjacency_list<boost::vecS, >>> > > > > >>> > > > > boost::vecS, boost::undirectedS, >>> > > > > boost::property<boost::vertex_index_t, >>> > > > > int, >>> boost::property<boost::vertex_centrality_t, >>> > double, >>> > > > > boost::no_property> >, >>> > boost::property<boost::edge_weight_t, double, >>> > > > > >>> boost::property<boost::edge_centrality_t, double, >>> > > > > boost::no_property> >, >>> > > > > boost::no_property, boost::listS>, >>> > clustering_threshold, >>> > > > > >>> > boost::adj_list_edge_property_map<boost::undirected_tag, >>> double, >>> > > > > double &, >>> > > > > unsigned long, >>> > boost::property<boost::edge_weight_t, double, >>> > > > > >>> boost::property<boost::edge_centrality_t, double, >>> > > > > boost::no_property> >, >>> > > > > boost::edge_centrality_t>, >>> > > > > >>> > > > > >>> > >>> boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, >>> > > > > int, >>> boost::property<boost::vertex_centrality_t, >>> > double, >>> > > > > boost::no_property> >, unsigned long> >>> >' requested >>> > here >>> > > > > betweenness_centrality_clustering(g, done, >>> > edge_centrality, >>> > > > > ^ >>> > > > > bbc.cpp:122:3: note: in instantiation of >>> function template >>> > specialization >>> > > > > >>> > > > > >>> > >>> 'boost::betweenness_centrality_clustering<boost::adjacency_list<boost::vecS, >>> > > > > >>> > > > > boost::vecS, boost::undirectedS, >>> > > > > boost::property<boost::vertex_index_t, >>> > > > > int, >>> boost::property<boost::vertex_centrality_t, >>> > double, >>> > > > > boost::no_property> >, >>> > boost::property<boost::edge_weight_t, double, >>> > > > > >>> boost::property<boost::edge_centrality_t, double, >>> > > > > boost::no_property> >, >>> > > > > boost::no_property, boost::listS>, >>> > clustering_threshold, >>> > > > > >>> > boost::adj_list_edge_property_map<boost::undirected_tag, >>> double, >>> > > > > double &, >>> > > > > unsigned long, >>> > boost::property<boost::edge_weight_t, double, >>> > > > > >>> boost::property<boost::edge_centrality_t, double, >>> > > > > boost::no_property> >, >>> > > > > boost::edge_centrality_t> >' requested >>> here >>> > > > > >>> betweenness_centrality_clustering(g, >>> > > > > ^ >>> > > > > >>> > > > > mzR 2.17.1 >>> > > > > >>> > > > > In file included from >>> > pwiz/data/identdata/Serializer_pepXML.cpp:25: >>> > > > > In file included from >>> > pwiz/data/identdata/Serializer_pepXML.hpp:27: >>> > > > > In file included from >>> pwiz/data/identdata/IdentData.hpp:29: >>> > > > > In file included from >>> ./pwiz/utility/misc/Exception.hpp:29: >>> > > > > In file included from >>> > /usr/local/clang8/bin/../include/c++/v1/string:505: >>> > > > > In file included from >>> > > > > >>> /usr/local/clang8/bin/../include/c++/v1/string_view:176: >>> > > > > In file included from >>> > /usr/local/clang8/bin/../include/c++/v1/__string:57: >>> > > > > >>> /usr/local/clang8/bin/../include/c++/v1/algorithm:2428:5: >>> > error: >>> > > > > static_assert >>> > > > > failed due to requirement >>> > > > > >>> > > > > >>> > >>> '__is_forward_iterator<boost::iterators::transform_iterator<pwiz::identdata::(anonymous >>> > > > > >>> > > > > namespace)::EnzymePtr_specificity, >>> > std::__1::__wrap_iter<const >>> > > > > >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>, >>> > > > > boost::iterators::use_default, >>> > boost::iterators::use_default> >>> > > > > >::value' >>> > > > > "std::min_element requires a >>> ForwardIterator" >>> > > > > >>> > static_assert(__is_forward_iterator<_ForwardIterator>::value, >>> > > > > ^ >>> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> > > > > >>> /usr/local/clang8/bin/../include/c++/v1/algorithm:2445:19: >>> > note: in >>> > > > > instantiation of function template >>> specialization >>> > > > > >>> > > > > >>> > >>> 'std::__1::min_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous >>> > > > > >>> > > > > namespace)::EnzymePtr_specificity, >>> > std::__1::__wrap_iter<const >>> > > > > >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>, >>> > > > > boost::iterators::use_default, >>> > boost::iterators::use_default>, >>> > > > > std::__1::__less<int, int> >' requested >>> here >>> > > > > return _VSTD::min_element(__first, __last, >>> > > > > ^ >>> > > > > >>> ./boost/boost/range/algorithm/min_element.hpp:44:17: note: >>> > in >>> > > > > instantiation of >>> > > > > function template specialization >>> > > > > >>> > > > > >>> > >>> 'std::__1::min_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous >>> > > > > >>> > > > > namespace)::EnzymePtr_specificity, >>> > std::__1::__wrap_iter<const >>> > > > > >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>, >>> > > > > boost::iterators::use_default, >>> > boost::iterators::use_default> >' >>> > > > > requested >>> > > > > here >>> > > > > return std::min_element(boost::begin(rng), >>> > boost::end(rng)); >>> > > > > >>> > > > > >>> > > > > >>> > > > > >>> pwiz/data/identdata/Serializer_pepXML.cpp:418:41: note: in >>> > instantiation of >>> > > > > function template specialization >>> > > > > >>> > > > > >>> > >>> 'boost::range::min_element<boost::range_detail::transformed_range<pwiz::identdata::(anonymous >>> > > > > >>> > > > > namespace)::EnzymePtr_specificity, const >>> > > > > >>> > std::__1::vector<boost::shared_ptr<pwiz::identdata::Enzyme>, >>> > > > > >>> > std::__1::allocator<boost::shared_ptr<pwiz::identdata::Enzyme> >>> > >>> > > > > > > >' >>> > > > > requested here >>> > > > > int minSpecificity = >>> > *boost::range::min_element(sip.enzymes.enzymes >>> > > > > ... >>> > > > > ^ >>> > > > > In file included from >>> > pwiz/data/identdata/Serializer_pepXML.cpp:25: >>> > > > > In file included from >>> > pwiz/data/identdata/Serializer_pepXML.hpp:27: >>> > > > > In file included from >>> pwiz/data/identdata/IdentData.hpp:29: >>> > > > > In file included from >>> ./pwiz/utility/misc/Exception.hpp:29: >>> > > > > In file included from >>> > /usr/local/clang8/bin/../include/c++/v1/string:505: >>> > > > > In file included from >>> > > > > >>> /usr/local/clang8/bin/../include/c++/v1/string_view:176: >>> > > > > In file included from >>> > /usr/local/clang8/bin/../include/c++/v1/__string:57: >>> > > > > >>> /usr/local/clang8/bin/../include/c++/v1/algorithm:2494:5: >>> > error: >>> > > > > static_assert >>> > > > > failed due to requirement >>> > > > > >>> > > > > >>> > >>> '__is_forward_iterator<boost::iterators::transform_iterator<pwiz::identdata::(anonymous >>> > > > > >>> > > > > namespace)::EnzymePtr_missedCleavages, >>> > std::__1::__wrap_iter<const >>> > > > > >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>, >>> > > > > boost::iterators::use_default, >>> > boost::iterators::use_default> >>> > > > > >::value' >>> > > > > "std::max_element requires a >>> ForwardIterator" >>> > > > > >>> > static_assert(__is_forward_iterator<_ForwardIterator>::value, >>> > > > > ^ >>> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> > > > > >>> /usr/local/clang8/bin/../include/c++/v1/algorithm:2512:19: >>> > note: in >>> > > > > instantiation of function template >>> specialization >>> > > > > >>> > > > > >>> > >>> 'std::__1::max_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous >>> > > > > >>> > > > > namespace)::EnzymePtr_missedCleavages, >>> > std::__1::__wrap_iter<const >>> > > > > >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>, >>> > > > > boost::iterators::use_default, >>> > boost::iterators::use_default>, >>> > > > > std::__1::__less<int, int> >' requested >>> here >>> > > > > return _VSTD::max_element(__first, __last, >>> > > > > ^ >>> > > > > >>> ./boost/boost/range/algorithm/max_element.hpp:44:17: note: >>> > in >>> > > > > instantiation of >>> > > > > function template specialization >>> > > > > >>> > > > > >>> > >>> 'std::__1::max_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous >>> > > > > >>> > > > > namespace)::EnzymePtr_missedCleavages, >>> > std::__1::__wrap_iter<const >>> > > > > >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>, >>> > > > > boost::iterators::use_default, >>> > boost::iterators::use_default> >' >>> > > > > requested >>> > > > > here >>> > > > > return std::max_element(boost::begin(rng), >>> > boost::end(rng)); >>> > > > > ... >>> > > > > >>> > > > >>> > > > >>> > > > -- >>> > > > Brian D. Ripley, >>> rip...@stats.ox.ac.uk >>> > > > Emeritus Professor of Applied Statistics, >>> University of >>> > Oxford >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > This email message may contain legally privileged >>> and/or >>> > confidential information. If you are not the intended >>> recipient(s), or the >>> > employee or agent responsible for the delivery of this message >>> to the >>> > intended recipient(s), you are hereby notified that any >>> disclosure, >>> > copying, distribution, or use of this email message is >>> prohibited. If you >>> > have received this message in error, please notify the sender >>> immediately >>> > by e-mail and delete this email message from your computer. >>> Thank you. >>> > > >>> > > >>> > > >>> > > >>> > > This email message may contain legally privileged and/or >>> confidential >>> > information. If you are not the intended recipient(s), or the >>> employee or >>> > agent responsible for the delivery of this message to the >>> intended >>> > recipient(s), you are hereby notified that any disclosure, >>> copying, >>> > distribution, or use of this email message is prohibited. If >>> you have >>> > received this message in error, please notify the sender >>> immediately by >>> > e-mail and delete this email message from your computer. Thank >>> you. >>> > >>> >>> -- >>> The information in this e-mail is intended only for the >>> ...{{dropped:18}} >>> >>> _______________________________________________ >>> Bioc-devel@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/bioc-devel >>> >>> >>> _______________________________________________ >>> Bioc-devel@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/bioc-devel >>> >> > The information in this e-mail is intended only for th...{{dropped:16}} _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel