Hide Forgot
Description of problem: Current version of rb_libtorrent in F15 and Rawhide is incompatible with new libboost. This causes that package 'fatrat' can not be recompiled and therefore we have a broken-deps version in F15 and Rawhide. Version-Release number of selected component (if applicable): rb_libtorrent-0.15.5-2.fc15.x86_64 boost-1.46.0-0.3.beta1.fc15.x86_64 How reproducible: === reproducer.cpp === #include <libtorrent/create_torrent.hpp> int main(int argc, char *argv[]) { return 0; } == compilation output == [build@rawhide reproducer]$ g++ reproducer.cpp In file included from /usr/include/libtorrent/create_torrent.hpp:38:0, from reproducer.cpp:1: /usr/include/libtorrent/file_storage.hpp:110:8: error: ‘void libtorrent::file_storage::add_file(const wpath&, libtorrent::size_type, int, time_t, const boost::filesystem3::path&)’ cannot be overloaded /usr/include/libtorrent/file_storage.hpp:106:8: error: with ‘void libtorrent::file_storage::add_file(const boost::filesystem3::path&, libtorrent::size_type, int, time_t, const boost::filesystem3::path&)’ In file included from /usr/include/libtorrent/storage.hpp:55:0, from /usr/include/libtorrent/create_torrent.hpp:41, from reproducer.cpp:1: /usr/include/libtorrent/torrent_info.hpp:195:3: error: ‘libtorrent::torrent_info::torrent_info(const wpath&)’ cannot be overloaded /usr/include/libtorrent/torrent_info.hpp:193:3: error: with ‘libtorrent::torrent_info::torrent_info(const boost::filesystem3::path&)’ /usr/include/libtorrent/torrent_info.hpp:204:3: error: ‘libtorrent::torrent_info::torrent_info(const wpath&, boost::system::error_code&)’ cannot be overloaded /usr/include/libtorrent/torrent_info.hpp:202:3: error: with ‘libtorrent::torrent_info::torrent_info(const boost::filesystem3::path&, boost::system::error_code&)’ In file included from reproducer.cpp:1:0: /usr/include/libtorrent/create_torrent.hpp:200:60: error: ‘boost::filesystem::basic_path’ has not been declared /usr/include/libtorrent/create_torrent.hpp:200:70: error: expected ‘,’ or ‘...’ before ‘<’ token /usr/include/libtorrent/create_torrent.hpp: In function ‘void libtorrent::detail::add_files_impl(libtorrent::file_storage&, int)’: /usr/include/libtorrent/create_torrent.hpp:203:29: error: ‘boost::filesystem::basic_path’ has not been declared /usr/include/libtorrent/create_torrent.hpp:204:29: error: ‘boost::filesystem::basic_directory_iterator’ has not been declared /usr/include/libtorrent/create_torrent.hpp:205:4: error: ‘basic_path’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:205:18: error: expected primary-expression before ‘,’ token /usr/include/libtorrent/create_torrent.hpp:205:30: error: expected primary-expression before ‘>’ token /usr/include/libtorrent/create_torrent.hpp:205:34: error: ‘p’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:205:38: error: ‘l’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:205:39: error: there are no arguments to ‘f’ that depend on a template parameter, so a declaration of ‘f’ must be available [-fpermissive] /usr/include/libtorrent/create_torrent.hpp:205:39: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated) /usr/include/libtorrent/create_torrent.hpp:206:14: error: ‘f’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:206:15: error: there are no arguments to ‘pred’ that depend on a template parameter, so a declaration of ‘pred’ must be available [-fpermissive] /usr/include/libtorrent/create_torrent.hpp:208:32: error: ‘f’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:208:33: error: there are no arguments to ‘is_directory’ that depend on a template parameter, so a declaration of ‘is_directory’ must be available [-fpermissive] /usr/include/libtorrent/create_torrent.hpp:211:21: error: there are no arguments to ‘is_symlink’ that depend on a template parameter, so a declaration of ‘is_symlink’ must be available [-fpermissive] /usr/include/libtorrent/create_torrent.hpp:211:28: error: ‘flags’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:216:10: error: ‘basic_directory_iterator’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:216:49: error: expected primary-expression before ‘,’ token /usr/include/libtorrent/create_torrent.hpp:216:61: error: expected primary-expression before ‘>’ token /usr/include/libtorrent/create_torrent.hpp:216:63: error: expected primary-expression before ‘>’ token /usr/include/libtorrent/create_torrent.hpp:216:68: error: there are no arguments to ‘i’ that depend on a template parameter, so a declaration of ‘i’ must be available [-fpermissive] /usr/include/libtorrent/create_torrent.hpp:216:71: error: ‘end’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:216:71: note: suggested alternatives: /usr/include/boost/range/end.hpp:106:77: note: ‘boost::range_adl_barrier::end’ /usr/include/boost/range/end.hpp:106:77: note: ‘boost::range_adl_barrier::end’ /usr/include/libtorrent/create_torrent.hpp:216:76: error: ‘i’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:224:38: error: ‘pred’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:224:44: error: ‘flags’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:233:10: error: ‘flags’ was not declared in this scope /usr/include/libtorrent/create_torrent.hpp:240:32: error: there are no arguments to ‘file_size’ that depend on a template parameter, so a declaration of ‘file_size’ must be available [-fpermissive] /usr/include/libtorrent/create_torrent.hpp: In function ‘void libtorrent::add_files(libtorrent::file_storage&, const boost::filesystem3::path&, uint32_t)’: /usr/include/libtorrent/create_torrent.hpp:275:33: error: no matching function for call to ‘add_files_impl(libtorrent::file_storage&, boost::filesystem3::path, boost::filesystem3::path, bool (&)(const boost::filesystem3::path&), uint32_t&)’ /usr/include/libtorrent/create_torrent.hpp:275:33: note: candidate is: /usr/include/libtorrent/create_torrent.hpp:201:95: note: template<class Pred, class Str, class PathTraits> void libtorrent::detail::add_files_impl(libtorrent::file_storage&, int) [build@rawhide reproducer]$ Steps to Reproduce: 1. install rb_libtorrent-devel 2. g++ reproducer.cpp 3. Actual results: Reproducer causes this error. And fatrat build fails. Expected results: Reproducer will not crash on including create_torrent.hpp. And fatrat build will succeed. Additional info: fatrat: http://koji.fedoraproject.org/koji/packageinfo?packageID=10956
Created attachment 479700 [details] fatrat.spec
I have attached a spec file that enables it to build http://koji.fedoraproject.org/koji/taskinfo?taskID=2851140
(In reply to comment #0) > Description of problem: > > Current version of rb_libtorrent in F15 and Rawhide is incompatible with new > libboost. This causes that package 'fatrat' can not be recompiled and therefore IMO the fault lies with fatrat not using the libtorrent-rasterbar.pc file
(In reply to comment #1) > Created attachment 479700 [details] > fatrat.spec Thank you! I've already fixed that. Anyway your patch is wrong, as it drops all the other compiler flags. This is the reason: $ rpm --showrc | grep CFLAGS= CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS; You can take a look at: http://fedoraproject.org/wiki/PackagingGuidelines#Compiler_flags (In reply to comment #3) > > IMO the fault lies with fatrat not using the libtorrent-rasterbar.pc file That's a good point.
Once closing.