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

Samuela Pollack @po||@ck @end|ng |rom j|mmy@h@rv@rd@edu
Mon Mar 25 12:22:55 CET 2019


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 using 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 using 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 using 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.



More information about the Bioc-devel mailing list