FTBFS in zesty against boost 1.62

Bug #1640321 reported by Dimitri John Ledkov on 2016-11-08
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mcloud (Ubuntu)
Undecided
Unassigned

Bug Description

Please see no change rebuild build logs at: https://launchpad.net/ubuntu/+source/mcloud/1.0.0+16.10.20160927.3-0ubuntu2

Please help fix this failure

[ 32%] Building CXX object provider/CMakeFiles/mcloud-provider-static.dir/McloudProvider.cpp.o
cd /<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3/obj-x86_64-linux-gnu/provider && /usr/bin/c++ -DBOOST_THREAD_VERSION=4 -I/<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3/include -I/<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3/obj-x86_64-linux-gnu/provider -I/usr/include/storage-framework-provider-1 -g -O2 -fdebug-prefix-map=/<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -Werror -Wall -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -pedantic -Wextra -o CMakeFiles/mcloud-provider-static.dir/McloudProvider.cpp.o -c /<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3/provider/McloudProvider.cpp
/<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3/provider/McloudProvider.cpp: In member function ‘virtual boost::future<std::vector<unity::storage::provider::Item> > McloudProvider::roots(const unity::storage::provider::Context&)’:
/<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3/provider/McloudProvider.cpp:210:24: error: could not convert ‘boost::async(F&&, ArgTypes&& ...) [with F = McloudProvider::roots(const unity::storage::provider::Context&)::<lambda()>; ArgTypes = {}; typename boost::result_of<typename boost::decay<T>::type(typename boost::decay<ArgTypes>::type ...)>::type = boost::future<std::vector<unity::storage::provider::Item> >]()’ from ‘boost::future<boost::future<std::vector<unity::storage::provider::Item> > >’ to ‘boost::future<std::vector<unity::storage::provider::Item> >’
     return boost::async([this, ctx](){
            ~~~~~~~~~~~~^~~~~~~~~~~~~~~
         try {
         ~~~~~
             auto client = assign_client(ctx);
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             auto root_folder_id = client->cloud_root_folder_id();
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

             ItemList roots = {
             ~~~~~~~~~~~~~~~~~~
                 {root_folder_id, {}, "root", "", ItemType::root, {}}
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             };
             ~~

             return make_ready_future<ItemList>(roots);
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         } catch (runtime_error &e) {
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             return make_exceptional_future<ItemList>(
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     RemoteCommsException(string("McloudProvider::roots(): failed: ") + e.what()));
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         }
         ~
     });
     ~~
/<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3/provider/McloudProvider.cpp: In member function ‘virtual boost::future<std::tuple<std::vector<unity::storage::provider::Item, std::allocator<unity::storage::provider::Item> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > McloudProvider::list(const string&, const string&, const unity::storage::provider::Context&)’:
/<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3/provider/McloudProvider.cpp:241:24: error: could not convert ‘boost::async(F&&, ArgTypes&& ...) [with F = McloudProvider::list(const string&, const string&, const unity::storage::provider::Context&)::<lambda()>; ArgTypes = {}; typename boost::result_of<typename boost::decay<T>::type(typename boost::decay<ArgTypes>::type ...)>::type = boost::future<std::tuple<std::vector<unity::storage::provider::Item, std::allocator<unity::storage::provider::Item> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >]()’ from ‘boost::future<boost::future<std::tuple<std::vector<unity::storage::provider::Item, std::allocator<unity::storage::provider::Item> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >’ to ‘boost::future<std::tuple<std::vector<unity::storage::provider::Item, std::allocator<unity::storage::provider::Item> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >’
     return boost::async([this, item_id, page_token_index, ctx](){
            ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         try {
         ~~~~~
             const int count_per_page = 50;
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             int start_index = 1 + page_token_index * count_per_page;
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             auto client = assign_client(ctx);
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             auto content_list = client->cloud_content_list(start_index, count_per_page,
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                            CloudContent::Type::All, item_id);
                                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

             ItemList roots;
             ~~~~~~~~~~~~~~~
             for (const auto & content: content_list) {
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 roots.push_back(content_to_item(content));
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             }
             ~

             int offset = 0;
             ~~~~~~~~~~~~~~~
             boost::promise<tuple<ItemList,string>> prom;
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             if (content_list.size() >= count_per_page) {
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 offset++;
                 ~~~~~~~~~
             }
             ~
             prom.set_value(make_tuple(roots, std::to_string(page_token_index + offset)));
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

             return prom.get_future();
             ~~~~~~~~~~~~~~~~~~~~~~~~~
         } catch (InvalidIDException &e) {
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             return make_exceptional_future<tuple<ItemList,string>>(
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     NotExistsException(string("McloudProvider::list(): failed: ") + e.what(), item_id));
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         } catch (runtime_error &e) {
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             return make_exceptional_future<tuple<ItemList,string>>(
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     RemoteCommsException(string("McloudProvider::list(): failed: ") + e.what()));
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         }
         ~
     });
     ~~
/<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3/provider/McloudProvider.cpp: In member function ‘virtual boost::future<std::vector<unity::storage::provider::Item> > McloudProvider::lookup(const string&, const string&, const unity::storage::provider::Context&)’:
/<<BUILDDIR>>/mcloud-1.0.0+16.10.20160927.3/provider/McloudProvider.cpp:276:24: error: could not convert ‘boost::async(F&&, ArgTypes&& ...) [with F = McloudProvider::lookup(const string&, const string&, const unity::storage::provider::Context&)::<lambda()>; ArgTypes = {}; typename boost::result_of<typename boost::decay<T>::type(typename boost::decay<ArgTypes>::type ...)>::type = boost::future<std::vector<unity::storage::provider::Item> >]()’ from ‘boost::future<boost::future<std::vector<unity::storage::provider::Item> > >’ to ‘boost::future<std::vector<unity::storage::provider::Item> >’
     return boost::async([this, parent_id, name, ctx](){
            ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         try {
         ~~~~~
             const int count_per_page = 50;
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             int page_token_index = 0;
             ~~~~~~~~~~~~~~~~~~~~~~~~~
             int start_index = 0;
             ~~~~~~~~~~~~~~~~~~~~

             ItemList roots;
             ~~~~~~~~~~~~~~~
             do {
             ~~~~
                 page_token_index++;
                 ~~~~~~~~~~~~~~~~~~~
                 start_index = 1 + (page_token_index - 1) * count_per_page;
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 auto client = assign_client(ctx);
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 auto content_list = client->cloud_content_list(start_index, count_per_page,
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                CloudContent::Type::All, parent_id);
                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                 for (const auto & content: content_list) {
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     if (content->name().find(name) != string::npos) {
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         roots.push_back(content_to_item(content));
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     }
                     ~
                 }
                 ~

                 if (content_list.size() < count_per_page)
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     break;
                     ~~~~~~
             } while (true);
             ~~~~~~~~~~~~~~~

             return make_ready_future<ItemList>(roots);
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         } catch (InvalidIDException &e) {
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             return make_exceptional_future<ItemList>(
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     NotExistsException(string("McloudProvider::lookup(): folder not exists: ") + e.what(), parent_id));
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         } catch (runtime_error &e) {
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             return make_exceptional_future<ItemList>(
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     RemoteCommsException(string("McloudProvider::lookup(): failed: ") + e.what()));
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         }
         ~
     });
     ~~

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers