FTBFS in zesty against boost 1.62

Bug #1640321 reported by Dimitri John Ledkov
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mcloud (Ubuntu)
Fix Released
Critical
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()));
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         }
         ~
     });
     ~~

Revision history for this message
Steve Langasek (vorlon) wrote :

This build failure now blocks the python3.6 transition in artful. I am therefore removing mcloud from artful (leaving it in artful-
proposed). Please provide a fixed package asap.

Changed in mcloud (Ubuntu):
importance: Undecided → Critical
status: New → Triaged
Revision history for this message
Steve Langasek (vorlon) wrote :

Sorry, no, this particular build failure is already fixed. Opening a new bug for the new build failure.

Changed in mcloud (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.