Skip to content

[Bioc-devel] package RBGL requires CRAN dependency on devel branch

13 messages · Samuela Pollack, Martin Morgan, Vincent Carey +2 more

#
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:
#
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 <spollack at jimmy.harvard.edu>
wrote:

  
    
#
Could be an issue with the configure script. Will check.

- Sam
On 3/25/19 7:32 AM, Vincent Carey 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-bounces at r-project.org on behalf of stvjc at 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 <spollack at 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" <spollack at 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" <ripley at 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,                  ripley at 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 at r-project.org mailing list
    https://stat.ethz.ch/mailman/listinfo/bioc-devel
#
...also Bioconductor knows all about CRAN -- see the repositories returned by
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.bioc at 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-bounces at r-project.org on behalf of stvjc at 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 <spollack at 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" <spollack at 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" <ripley at 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,                  ripley at 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 at r-project.org mailing list
        https://stat.ethz.ch/mailman/listinfo/bioc-devel
#
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.

On Mon, Mar 25, 2019 at 8:03 AM Martin Morgan <mtmorgan.bioc at gmail.com>
wrote:

  
  
#
On Mon, Mar 25, 2019 at 10:57 AM Kasper Daniel Hansen <
kasperdanielhansen at gmail.com> wrote:

            
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.

  
    
#
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 <stvjc at channing.harvard.edu>
wrote:
#
My 2 cents - API-breaking changes to BH are no more of an issue than 
breaking changes to any other CRAN package. We just hope that it doesn't 
happen too often and we deal with it when the time comes; that's the 
whole point of getting frequent release builds to check for these cases.

If we were discussing a package that distributed a shared library, then 
greater concern would be warranted if updates to the library resulted in 
ABI incompatibilities. This could result in very cryptic errors at link 
time, load time, or possibly segmentation faults, who knows.

But BH is a header-only library, so breaking changes will most likely 
cause compilation errors that are obvious and easy to fix. Well, easy 
enough if you were able to write C++ code in the first place.

-A
On 25/03/2019 08:39, Vincent Carey wrote:
#
well, we can't fix this in old branches of Bioc.

My POV is that we need to consider - in some sense - lock down CRAN with a
Bioc release.

On Tue, Mar 26, 2019 at 12:45 AM Aaron Lun <
infinite.monkeys.with.keyboards at gmail.com> wrote:

            

  
  
#
Sure, but one could say that about breaking changes to any CRAN package. 
Nothing particularly special about BH on that point.
That's probably worth considering. For example, it would be pretty cool 
to just supply a date and BiocManager could figure out the last 
successful release versions of all CRAN/BioC packages at that time.

-A
#
On Wed, Mar 27, 2019 at 1:06 AM Aaron Lun <
infinite.monkeys.with.keyboards at gmail.com> wrote:

            
Indeed, and this has been my position for a number of years. Having said
that, dynamic linking / headers in my experience increase the chance of
breaking and it is usually a kind of breakage which requires substantial
insight to fix (as opposed to say changing the order / naming of arguments
in an R function, which is really easy to diagnose even if you know nothing
about the package).
#
On Wed, Mar 27, 2019 at 9:05 AM Kasper Daniel Hansen <
kasperdanielhansen at gmail.com> wrote:

            
Definitely.

I started a channel on slack to continue this discussion.   #containers