diff -Nru bombono-dvd-1.2.1/debian/changelog bombono-dvd-1.2.1/debian/changelog --- bombono-dvd-1.2.1/debian/changelog 2012-11-10 05:28:52.000000000 +0000 +++ bombono-dvd-1.2.1/debian/changelog 2013-05-02 21:18:54.000000000 +0000 @@ -1,3 +1,9 @@ +bombono-dvd (1.2.1-0ubuntu5) saucy; urgency=low + + * Cherry-pick patches from upstream to build against boost1.53. + + -- Dmitrijs Ledkovs Thu, 02 May 2013 22:09:31 +0100 + bombono-dvd (1.2.1-0ubuntu4) raring; urgency=low * 03_libav.patch: fix FTBFS with libav9. Patch taken from upstream that diff -Nru bombono-dvd-1.2.1/debian/patches/3b236fb21d9f0dd59cd5f8aa4a902dfc8af2e18b.patch bombono-dvd-1.2.1/debian/patches/3b236fb21d9f0dd59cd5f8aa4a902dfc8af2e18b.patch --- bombono-dvd-1.2.1/debian/patches/3b236fb21d9f0dd59cd5f8aa4a902dfc8af2e18b.patch 1970-01-01 00:00:00.000000000 +0000 +++ bombono-dvd-1.2.1/debian/patches/3b236fb21d9f0dd59cd5f8aa4a902dfc8af2e18b.patch 2013-05-02 21:06:59.000000000 +0000 @@ -0,0 +1,553 @@ +From 3b236fb21d9f0dd59cd5f8aa4a902dfc8af2e18b Mon Sep 17 00:00:00 2001 +From: Ilya Murav'jov +Date: Wed, 20 Apr 2011 16:39:26 +0400 +Subject: [PATCH] i18n when _WIN32: + - boost.filesystem v2 -> v3 with utf8_codecvt_facet + - _wfopen instead of fopen() for io::stream + +--- + libs/boost-lib/SConscript | 24 ++++++------ + src/mbase/project/_extlibs_.h | 4 +-- + src/mbase/project/media.cpp | 2 - + src/mbase/project/table.cpp | 7 +++- + src/mgui/author/script.cpp | 2 +- + src/mgui/mux.cpp | 13 +++++-- + src/mgui/prefs.cpp | 1 - + src/mgui/project/add.cpp | 6 ++-- + src/mgui/project/mconstructor.cpp | 2 +- + src/mgui/project/serialize.cpp | 2 +- + src/mgui/tests/test_author.cpp | 2 - + src/mgui/win_utils.cpp | 2 +- + src/mlib/filesystem.cpp | 68 +++++++++++++++++++++++++++++++++++-- + src/mlib/filesystem.h | 6 ++- + src/mlib/sdk/bfs.h | 17 +++++++++ + src/mlib/stream.cpp | 12 +++++-- + src/mlib/string.h | 2 + + src/mlib/tests/test_utils.cpp | 40 ++++++++++++++++------ + 18 files changed, 161 insertions(+), 51 deletions(-) + create mode 100644 src/mlib/sdk/bfs.h + +diff --git a/libs/boost-lib/SConscript b/libs/boost-lib/SConscript +index df3249a..8628c53 100644 +--- a/libs/boost-lib/SConscript ++++ b/libs/boost-lib/SConscript +@@ -58,19 +58,19 @@ bfs_source_files = make_source_files(bfs_src, + #'operations_posix_windows.cpp', + #'path_posix_windows.cpp' + +- 'v2/src/v2_operations.cpp', +- 'v2/src/v2_path.cpp', +- 'v2/src/v2_portability.cpp', ++ #'v2/src/v2_operations.cpp', ++ #'v2/src/v2_path.cpp', ++ #'v2/src/v2_portability.cpp', + +- # turn off B.F v3 because it is not mature (awkward warnings) +- #'v3/src/operations.cpp', +- #'v3/src/path.cpp', +- #'v3/src/portability.cpp', +- #'v3/src/utf8_codecvt_facet.cpp', +- #'v3/src/codecvt_error_category.cpp', +- #'v3/src/path_traits.cpp', +- #'v3/src/unique_path.cpp', +- #'v3/src/windows_file_codecvt.cpp' ++ # v3 is needed because of better arch for win32 ++ 'v3/src/operations.cpp', ++ 'v3/src/path.cpp', ++ 'v3/src/portability.cpp', ++ 'v3/src/utf8_codecvt_facet.cpp', ++ 'v3/src/codecvt_error_category.cpp', ++ 'v3/src/path_traits.cpp', ++ 'v3/src/unique_path.cpp', ++ 'v3/src/windows_file_codecvt.cpp' + ]) + # libboost_filesystem.a + bfs_env.Library( target = lib_dir+'/boost_filesystem', source = bfs_source_files ) +diff --git a/src/mbase/project/_extlibs_.h b/src/mbase/project/_extlibs_.h +index cff60d3..5275b63 100644 +--- a/src/mbase/project/_extlibs_.h ++++ b/src/mbase/project/_extlibs_.h +@@ -58,9 +58,7 @@ + // Boost + // + #include +- +-#include +-#include ++#include + + //#include + +diff --git a/src/mbase/project/media.cpp b/src/mbase/project/media.cpp +index 7881453..81e44d2 100644 +--- a/src/mbase/project/media.cpp ++++ b/src/mbase/project/media.cpp +@@ -27,8 +27,6 @@ + #include // MakeAbsolutePath() + #include + +-#include // fs::create_directories() +- + namespace Project + { + +diff --git a/src/mbase/project/table.cpp b/src/mbase/project/table.cpp +index 33ee15a..600ff26 100644 +--- a/src/mbase/project/table.cpp ++++ b/src/mbase/project/table.cpp +@@ -426,8 +426,11 @@ void GetThemeList(Str::List& t_lst) + if( fs::is_directory(dir) ) + { + for( fs::directory_iterator itr(dir), end; itr != end; ++itr ) +- if( IsFrameDir(*itr) ) +- t_lst.push_back(itr->leaf()); ++ { ++ const fs::path& fname = *itr; ++ if( IsFrameDir(fname) ) ++ t_lst.push_back(fs::name_str(fname)); ++ } + } + } + +diff --git a/src/mgui/author/script.cpp b/src/mgui/author/script.cpp +index aa2b494..e282b9f 100644 +--- a/src/mgui/author/script.cpp ++++ b/src/mgui/author/script.cpp +@@ -370,7 +370,7 @@ static std::string SrcFilename(VideoItem vi) + static std::string PrefixCnvPath(VideoItem vi, const std::string& out_dir) + { + std::string dst_fname = boost::format("%1%.%2%") % GetAuthorNumber(vi) +- % fs::path(SrcFilename(vi)).leaf() % bf::stop; ++ % fs::name_str(SrcFilename(vi)) % bf::stop; + return AppendPath(out_dir, dst_fname); + } + +diff --git a/src/mgui/mux.cpp b/src/mgui/mux.cpp +index 4b4a5fa..427058e 100644 +--- a/src/mgui/mux.cpp ++++ b/src/mgui/mux.cpp +@@ -72,7 +72,7 @@ void SetDialogStrict(Gtk::Dialog& dlg, int min_wdh, int min_hgt, bool set_resiza + + static bool RunMuxing(const std::string& dest_path, const std::string& args) + { +- Gtk::Dialog dlg(BF_("Muxing \"%1%\"") % fs::path(dest_path).leaf() % bf::stop); ++ Gtk::Dialog dlg(BF_("Muxing \"%1%\"") % fs::name_str(dest_path) % bf::stop); + SetDialogStrict(dlg, 400, -1); + + Gtk::TextView& txt_view = NewManaged(); +@@ -141,18 +141,25 @@ SaveChooser::SaveChooser(const char* type): + attach(fcb, 1, 2, 1, 2); + } + ++fs::path GetFilename(Gtk::FileChooser& fc) ++{ ++ // fs::path v3 не понимает ustring ++ // однако в gtkmm >= будет возвращать std::string, и это не понадобится ++ return fs::path(fc.get_filename().raw()); ++} ++ + std::string GetFilename(SaveChooser& sc) + { + std::string fname = sc.ent.get_text(); + if( !fname.empty() ) +- fname = (fs::path(sc.fcb.get_filename())/fname).string(); ++ fname = (GetFilename(sc.fcb)/fname).string(); + + return fname; + } + + static void OnVideoSelected(Gtk::FileChooserButton& v_btn, Gtk::FileChooserButton& a_btn, SaveChooser& sc) + { +- fs::path pth = fs::path(v_btn.get_filename()); ++ fs::path pth = GetFilename(v_btn); + if( pth.empty() ) + return; + std::string folder = pth.branch_path().string(); +diff --git a/src/mgui/prefs.cpp b/src/mgui/prefs.cpp +index 7d5641b..f78d3bd 100644 +--- a/src/mgui/prefs.cpp ++++ b/src/mgui/prefs.cpp +@@ -44,7 +44,6 @@ + #include + + #include +-#include // fs::create_directories() + + std::string PreferencesPath(const char* fname) + { +diff --git a/src/mgui/project/add.cpp b/src/mgui/project/add.cpp +index db4df17..69946ec 100644 +--- a/src/mgui/project/add.cpp ++++ b/src/mgui/project/add.cpp +@@ -420,7 +420,7 @@ void TryAddMediaQuiet(const std::string& fname, const std::string& desc) + static std::string StandFNameOut(const fs::path& pth) + { + return "" + +- pth.leaf() + ""; ++ fs::name_str(pth) + ""; + } + + #if GTK_CHECK_VERSION(2,18,0) +@@ -454,7 +454,7 @@ StorageItem CheckExists(const fs::path& pth, RefPtr ms) + + void OneMediaError(const fs::path& err_pth, const std::string& desc) + { +- AddMediaError(BF_("Can't add file \"%1%\".") % err_pth.leaf() % bf::stop, desc); ++ AddMediaError(BF_("Can't add file \"%1%\".") % fs::name_str(err_pth) % bf::stop, desc); + } + + void TryAddMedias(const Str::List& paths, MediaBrowser& brw, +@@ -465,7 +465,7 @@ void TryAddMedias(const Str::List& paths, MediaBrowser& brw, + { + const std::string fname = paths[0]; + fs::path pth(fname); +- std::string leaf = pth.leaf(); ++ std::string leaf = fs::name_str(pth); + { + static re::pattern dvd_video_vob("(VIDEO_TS|VTS_[0-9][0-9]_[0-9]).VOB", + re::pattern::perl|re::pattern::icase); +diff --git a/src/mgui/project/mconstructor.cpp b/src/mgui/project/mconstructor.cpp +index 12e2f49..7ad2546 100644 +--- a/src/mgui/project/mconstructor.cpp ++++ b/src/mgui/project/mconstructor.cpp +@@ -961,7 +961,7 @@ void RunConstructor(const std::string& prj_file_name, bool ask_save_on_exit) + static const fs::directory_iterator end_itr; + for( fs::directory_iterator itr(DataDirPath("bmd-icons")); + itr != end_itr; ++itr ) +- pix_lst.push_back(Gdk::Pixbuf::create_from_file(itr->string())); ++ pix_lst.push_back(Gdk::Pixbuf::create_from_file(itr->path().string())); + Gtk::Window::set_default_icon_list(pix_lst); + + ActionFunctor after_fnr = BuildConstructor(app, prj_file_name); +diff --git a/src/mgui/project/serialize.cpp b/src/mgui/project/serialize.cpp +index 12b3c3a..a5366aa 100644 +--- a/src/mgui/project/serialize.cpp ++++ b/src/mgui/project/serialize.cpp +@@ -71,7 +71,7 @@ static std::string MakeProjectTitle(bool with_path_breakdown = false) + return "untitled.bmd"; + + fs::path full_path(db.GetProjectFName()); +- std::string res_str = full_path.leaf(); ++ std::string res_str = fs::name_str(full_path); + if( with_path_breakdown ) + res_str += " (" + full_path.branch_path().string() + ")"; + return res_str; +diff --git a/src/mgui/tests/test_author.cpp b/src/mgui/tests/test_author.cpp +index 4f4e636..c42ba1a 100644 +--- a/src/mgui/tests/test_author.cpp ++++ b/src/mgui/tests/test_author.cpp +@@ -27,8 +27,6 @@ + #include + #include + +-#include // fs::create_directories() +- + namespace Project + { + +diff --git a/src/mgui/win_utils.cpp b/src/mgui/win_utils.cpp +index 28ad9dd..0c721d3 100644 +--- a/src/mgui/win_utils.cpp ++++ b/src/mgui/win_utils.cpp +@@ -418,7 +418,7 @@ bool CheckKeepOrigin(const std::string& fname) + bool res = false; + if( fs::exists(fname) && + (Gtk::RESPONSE_OK != MessageBox(BF_("A file named \"%1%\" already exists. Do you want to replace it?") +- % fs::path(fname).leaf() % bf::stop, ++ % fs::name_str(fname) % bf::stop, + Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_OK_CANCEL, + _("Replacing the file overwrite its contents."), + true)) ) +diff --git a/src/mlib/filesystem.cpp b/src/mlib/filesystem.cpp +index bb84860..68cb7f9 100644 +--- a/src/mlib/filesystem.cpp ++++ b/src/mlib/filesystem.cpp +@@ -23,6 +23,11 @@ + #include "tech.h" + #include "format.h" + ++// :TRICKY: со временем может измениться (в бусте), но создавать ++// свою хлопотнее пока, см. boost/detail/utf8_codecvt_facet.hpp ++#include ++#include // boost::filesystem3::convert() ++ + #include // strstr() + + namespace boost { namespace filesystem { +@@ -38,6 +43,27 @@ std::string operator / (const path& f, to_string_enum /*to_str*/) + return f.string(); + } + ++#ifdef BFS_VERSION_3 ++ ++std::string name_str(const path& pth) ++{ ++ return pth.filename().string(); ++} ++ ++#else ++ ++std::string name_str(const path& pth) ++{ ++ return pth.leaf(); ++} ++ ++#endif // BFS_VERSION_3 ++ ++std::string name_str(const std::string& pth) ++{ ++ return name_str(path(pth)); ++} ++ + } } // namepspace filesystem, boost + + const char* FindExtDot(const char* name) +@@ -45,6 +71,20 @@ const char* FindExtDot(const char* name) + return strrchr(name, '.'); + } + ++#ifdef BFS_VERSION_3 ++ ++std::string get_basename(const fs::path& pth) ++{ ++ return pth.stem().string(); ++} ++ ++std::string get_extension(const fs::path& pth) ++{ ++ return pth.extension().string(); ++} ++ ++#else ++ + std::string get_basename(const fs::path& pth) + { + std::string name_s = pth.leaf(); +@@ -65,17 +105,39 @@ std::string get_extension(const fs::path& pth) + return std::string(); + } + +-// глобальная установка проверки имен файлов ++#endif // BFS_VERSION_3 ++ + class tune_boost_filesystem + { + public: + tune_boost_filesystem() + { +- // чтоб любые символы в именах файлов позволялись, для utf8 +- fs::path::default_name_check(fs::native); ++ // B.FS: отказались от проверок в ver>=2 ++ //// глобальная установка проверки имен файлов ++ //// чтоб любые символы в именах файлов позволялись, для utf8 ++ //fs::path::default_name_check(fs::native); ++ ++#if defined(_WIN32) && defined(BFS_VERSION_3) ++ // внутри используем utf-8 => меняем конвертор ++ std::locale utf8_loc(std::locale(), new fs::detail::utf8_codecvt_facet); ++ fs::path::imbue(utf8_loc); ++#endif + } + } tune_boost_filesystem_obj; + ++std::wstring Utf8ToUcs16(const char* utf8_str) ++{ ++ std::wstring res; ++#ifdef _WIN32 ++ // можно напрямую использовать utf8_codecvt_facet, но так проще ++ // (будет работать при fs::path::imbue(utf8_loc);) ++ boost::filesystem3::path_traits::convert(utf8_str, 0, res, fs::path::codecvt()); ++#else ++ ASSERT(0); ++#endif ++ return res; ++} ++ + namespace Project + { + +diff --git a/src/mlib/filesystem.h b/src/mlib/filesystem.h +index 768994a..f348641 100644 +--- a/src/mlib/filesystem.h ++++ b/src/mlib/filesystem.h +@@ -22,8 +22,7 @@ + #ifndef __MBASE_FILESYSTEM_H__ + #define __MBASE_FILESYSTEM_H__ + +-#include +-#include ++#include "sdk/bfs.h" + + #include + +@@ -36,6 +35,9 @@ bool is_empty_directory(const path & dir_path); + enum to_string_enum { to_str }; + std::string operator / (const path& f, to_string_enum /*to_str*/); + ++std::string name_str(const path& pth); ++std::string name_str(const std::string& pth); ++ + } } // namepspace filesystem, boost + namespace fs = boost::filesystem; + +diff --git a/src/mlib/sdk/bfs.h b/src/mlib/sdk/bfs.h +new file mode 100644 +index 0000000..c12b5d0 +--- /dev/null ++++ b/src/mlib/sdk/bfs.h +@@ -0,0 +1,17 @@ ++#ifndef __MLIB_SDK_BFS_H__ ++#define __MLIB_SDK_BFS_H__ ++ ++#define BOOST_FILESYSTEM_VERSION 3 ++// leaf() etc ++// :TODO: normalize() ++//#define BOOST_FILESYSTEM_NO_DEPRECATED ++ ++#include ++#include ++#include // fs::create_directories() ++ ++#if BOOST_FILESYSTEM_VERSION == 3 ++#define BFS_VERSION_3 ++#endif ++ ++#endif // __MLIB_SDK_BFS_H__ +diff --git a/src/mlib/stream.cpp b/src/mlib/stream.cpp +index 948a588..1c83e90 100644 +--- a/src/mlib/stream.cpp ++++ b/src/mlib/stream.cpp +@@ -19,11 +19,13 @@ + // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + // + +-#include +-#include +- + #include "stream.h" + #include "sdk/stream_util.h" // msys::tell ++#include "tech.h" ++#include "string.h" // Utf8ToUcs16() ++ ++#include ++#include + + namespace msys { + +@@ -90,7 +92,11 @@ bool stdio_sync_filebuf::open(const char* path_str, std::ios_base::openmod + const char* c_mode = impl::fopen_mode(mode); + if( c_mode && !is_open() ) + { ++#ifdef _WIN32 ++ FILE_type* pfile = _wfopen(Utf8ToUcs16(path_str).c_str(), Utf8ToUcs16(c_mode).c_str()); ++#else + FILE_type* pfile = fopen(path_str, c_mode); ++#endif + if( pfile ) + { + _M_file = pfile; +diff --git a/src/mlib/string.h b/src/mlib/string.h +index e9e5292..025b971 100644 +--- a/src/mlib/string.h ++++ b/src/mlib/string.h +@@ -89,5 +89,7 @@ bool Fnmatch(const std::string& str, const std::string& glob_pat); + + std::string QuotedName(const std::string& str); + ++std::wstring Utf8ToUcs16(const char* utf8_str); ++ + #endif // __MLIB_STRING_H__ + +diff --git a/src/mlib/tests/test_utils.cpp b/src/mlib/tests/test_utils.cpp +index 1eac4ff..23abd61 100644 +--- a/src/mlib/tests/test_utils.cpp ++++ b/src/mlib/tests/test_utils.cpp +@@ -103,6 +103,20 @@ BOOST_AUTO_TEST_CASE( TestDisplayParams ) + CheckConvert(dp, af221_100); + } + ++static std::string MakeRootComplete(const char* str) ++{ ++#ifdef _WIN32 ++ return std::string("c:") + str; ++#else ++ return str; ++#endif ++} ++ ++#ifdef NDEBUG ++// не включаем при отладке чтобы каждый раз на подобных тестах не останавливаться ++#define NO_SKIP_THROW_TEST ++#endif ++ + BOOST_AUTO_TEST_CASE( TestFilesystem ) + { + // файлы в utf-8 +@@ -116,6 +130,9 @@ BOOST_AUTO_TEST_CASE( TestFilesystem ) + fs::path author_path(path); + std::string base = get_basename(author_path); + BOOST_CHECK_EQUAL(str, base); ++ ++ fs::path cyr_fname(GetTestFileName("абвгд.txt")); ++ BOOST_CHECK( fs::exists(cyr_fname) ); + } + + // is_complete +@@ -127,34 +144,33 @@ BOOST_AUTO_TEST_CASE( TestFilesystem ) + fs::path apth = Project::MakeAbsolutePath(pth); + //LOG_INF << "Making abs path: " << pth.string() << " => " << apth.string() << io::endl; + +- BOOST_CHECK( Project::MakeAbsolutePath(pth, "/").is_complete() ); ++ BOOST_CHECK( Project::MakeAbsolutePath(pth, MakeRootComplete("/")).is_complete() ); + BOOST_CHECK( !Project::MakeAbsolutePath(pth, "./").is_complete() ); + } + + // MakeRelativeToDir + { +- fs::path dir("/a/b/c/d/e/f"); +- fs::path pth("/a/b/c/r/s/t/u"); ++ fs::path dir(MakeRootComplete("/a/b/c/d/e/f")); ++ fs::path pth(MakeRootComplete("/a/b/c/r/s/t/u")); + fs::path res("../../../r/s/t/u"); + BOOST_CHECK( Project::MakeRelativeToDir(pth, dir) ); + BOOST_CHECK_MESSAGE( pth == res, pth.string() << " != " << res.string() ); + +- dir = "/"; +- pth = "/usr"; ++ dir = MakeRootComplete("/"); ++ pth = MakeRootComplete("/usr"); + BOOST_CHECK( Project::MakeRelativeToDir(pth, dir) && (pth == fs::path("usr")) ); + +- dir = "/usr/lib/ttt"; +- pth = "/usr"; ++ dir = MakeRootComplete("/usr/lib/ttt"); ++ pth = MakeRootComplete("/usr"); + BOOST_CHECK( Project::MakeRelativeToDir(pth, dir) && (pth == fs::path("../..")) ); + +- dir = "/usr/ff/../yyy"; +- pth = "/ttt"; ++ dir = MakeRootComplete("/usr/ff/../yyy"); ++ pth = MakeRootComplete("/ttt"); + BOOST_CHECK( Project::MakeRelativeToDir(pth, dir) && (pth == fs::path("../../ttt")) ); + } + + //BOOST_CHECK( !fs::exists("/root/.config") ); +-#ifdef NDEBUG +- // не включаем при отладке чтобы каждый раз здесь не останавливаться ++#if !defined(_WIN32) && defined(NO_SKIP_THROW_TEST) + // на hardy почему-то /root доступен на чтение,- ослабляем условие до возможности + // бросить только fs::filesystem_error + //BOOST_CHECK_THROW( fs::exists("/root/.config"), fs::filesystem_error ); +@@ -185,7 +201,9 @@ BOOST_AUTO_TEST_CASE( TestStrGetType ) + int i = 0; + BOOST_CHECK( Str::GetType(i, "5") ); + BOOST_CHECK_EQUAL( i, 5 ); ++#ifdef NO_SKIP_THROW_TEST + BOOST_CHECK( !Str::GetType(i, "no4") ); ++#endif + + long long l = 0; + BOOST_CHECK( Str::GetType(l, "123456789000") ); +-- +1.7.1 + diff -Nru bombono-dvd-1.2.1/debian/patches/599066ccc8584495d9945b31d7ffda9f3523a202.patch bombono-dvd-1.2.1/debian/patches/599066ccc8584495d9945b31d7ffda9f3523a202.patch --- bombono-dvd-1.2.1/debian/patches/599066ccc8584495d9945b31d7ffda9f3523a202.patch 1970-01-01 00:00:00.000000000 +0000 +++ bombono-dvd-1.2.1/debian/patches/599066ccc8584495d9945b31d7ffda9f3523a202.patch 2013-05-02 21:07:28.000000000 +0000 @@ -0,0 +1,52 @@ +From 599066ccc8584495d9945b31d7ffda9f3523a202 Mon Sep 17 00:00:00 2001 +From: Ilya Murav'jov +Date: Sun, 24 Feb 2013 00:58:04 +0400 +Subject: [PATCH] boost.filesystem 2 => 3: tests ok for 1.44 + +--- + src/mgui/editor/toolbar.cpp | 10 +++++----- + src/mlib/tests/test_utils.cpp | 4 ++++ + 2 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/src/mgui/editor/toolbar.cpp b/src/mgui/editor/toolbar.cpp +index e549490..6a1894c 100644 +--- a/src/mgui/editor/toolbar.cpp ++++ b/src/mgui/editor/toolbar.cpp +@@ -283,12 +283,12 @@ Toolbar::Toolbar(): selTool(MakeSelectionToolImage()), txtTool(MakeTextToolLabel + Str::List o_lst; + boost_foreach( const std::string& str, IconsDirs() ) + { +- fs::path dir = fs::path(str); ++ fs::path dir = fs::path(str); + if( fs::is_directory(dir) ) +- { +- boost_foreach( const fs::path& pth, dir_range(dir) ) +- o_lst.push_back(pth.filename()); +- } ++ { ++ boost_foreach( const fs::path& pth, dir_range(dir) ) ++ o_lst.push_back(fs::name_str(pth)); ++ } + } + std::sort(o_lst.begin(), o_lst.end(), &ByExtName); + Project::MakeUnique(o_lst); +diff --git a/src/mlib/tests/test_utils.cpp b/src/mlib/tests/test_utils.cpp +index 23abd61..c4712e8 100644 +--- a/src/mlib/tests/test_utils.cpp ++++ b/src/mlib/tests/test_utils.cpp +@@ -131,8 +131,12 @@ BOOST_AUTO_TEST_CASE( TestFilesystem ) + std::string base = get_basename(author_path); + BOOST_CHECK_EQUAL(str, base); + ++#ifdef _WIN32 ++ // :TRICKY: git плохо относится к файлам с не латинскими буквами (ошибка) => ++ // не можем git cherry-pick -x 2c6cfb87fc0c25c226d009152d844777440a5af1 + fs::path cyr_fname(GetTestFileName("абвгд.txt")); + BOOST_CHECK( fs::exists(cyr_fname) ); ++#endif + } + + // is_complete +-- +1.7.1 + diff -Nru bombono-dvd-1.2.1/debian/patches/89949cc527f95c8f9ea07559b2a801d783359c03.patch bombono-dvd-1.2.1/debian/patches/89949cc527f95c8f9ea07559b2a801d783359c03.patch --- bombono-dvd-1.2.1/debian/patches/89949cc527f95c8f9ea07559b2a801d783359c03.patch 1970-01-01 00:00:00.000000000 +0000 +++ bombono-dvd-1.2.1/debian/patches/89949cc527f95c8f9ea07559b2a801d783359c03.patch 2013-05-02 21:08:07.000000000 +0000 @@ -0,0 +1,42 @@ +From 89949cc527f95c8f9ea07559b2a801d783359c03 Mon Sep 17 00:00:00 2001 +From: Ilya Murav'jov +Date: Sun, 24 Feb 2013 03:46:08 +0400 +Subject: [PATCH] boost.filesystem 2 => 3: tests ok for 1.53 + +--- + src/mlib/filesystem.cpp | 12 ++++++++++-- + 1 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/mlib/filesystem.cpp b/src/mlib/filesystem.cpp +index 0d98dee..7ae7162 100644 +--- a/src/mlib/filesystem.cpp ++++ b/src/mlib/filesystem.cpp +@@ -26,7 +26,15 @@ + // :TRICKY: со временем может измениться (в бусте), но создавать + // свою хлопотнее пока, см. boost/detail/utf8_codecvt_facet.hpp + #include +-#include // boost::filesystem3::convert() ++// в 1.51 v2 удалена полностью (svn diff -r 77555:HEAD -- boost/version.hpp | less) ++#if BOOST_MINOR_VERSION >= 51 ++#define BOOST_FS_3 boost::filesystem ++#include // boost::filesystem::convert() ++#else ++#define BOOST_FS_3 boost::filesystem3 ++#include ++#endif ++ + + #include // strstr() + +@@ -141,7 +149,7 @@ std::wstring Utf8ToUcs16(const char* utf8_str) + #ifdef _WIN32 + // можно напрямую использовать utf8_codecvt_facet, но так проще + // (будет работать при fs::path::imbue(utf8_loc);) +- boost::filesystem3::path_traits::convert(utf8_str, 0, res, fs::path::codecvt()); ++ BOOST_FS_3::path_traits::convert(utf8_str, 0, res, fs::path::codecvt()); + #else + ASSERT(0); + #endif +-- +1.7.1 + diff -Nru bombono-dvd-1.2.1/debian/patches/c8490d754d2e3936b1ee5c996b6bd662a36d2aeb.patch bombono-dvd-1.2.1/debian/patches/c8490d754d2e3936b1ee5c996b6bd662a36d2aeb.patch --- bombono-dvd-1.2.1/debian/patches/c8490d754d2e3936b1ee5c996b6bd662a36d2aeb.patch 1970-01-01 00:00:00.000000000 +0000 +++ bombono-dvd-1.2.1/debian/patches/c8490d754d2e3936b1ee5c996b6bd662a36d2aeb.patch 2013-05-02 21:06:19.000000000 +0000 @@ -0,0 +1,60 @@ +From c8490d754d2e3936b1ee5c996b6bd662a36d2aeb Mon Sep 17 00:00:00 2001 +From: Ilya Murav'jov +Date: Sat, 23 Feb 2013 13:39:58 +0400 +Subject: [PATCH] boost 1.53: fix for shared_ptr + +--- + src/mlib/ptr.h | 18 ++++++++++++++---- + 1 files changed, 14 insertions(+), 4 deletions(-) + +diff --git a/src/mlib/ptr.h b/src/mlib/ptr.h +index 8e9eccf..4891fa1 100644 +--- a/src/mlib/ptr.h ++++ b/src/mlib/ptr.h +@@ -153,6 +153,7 @@ class shared: public boost::shared_ptr + return *this; + } + ++#if 0 + // кострукторы приведения + template + shared(const shared& r, boost::detail::static_cast_tag t) +@@ -165,22 +166,31 @@ class shared: public boost::shared_ptr + template + shared(const shared& r, boost::detail::dynamic_cast_tag t) + : my_parent(r, t) {} +- ++#endif + }; + + template shared static_pointer_cast(shared const & r) + { +- return shared(r, boost::detail::static_cast_tag()); ++ typedef typename shared::element_type E; ++ ++ E* p = static_cast(r.get()); ++ return shared(r, p); + } + + template shared const_pointer_cast(shared const & r) + { +- return shared(r, boost::detail::const_cast_tag()); ++ typedef typename shared::element_type E; ++ ++ E* p = const_cast(r.get()); ++ return shared( r, p ); + } + + template shared dynamic_pointer_cast(shared const & r) + { +- return shared(r, boost::detail::dynamic_cast_tag()); ++ typedef typename shared::element_type E; ++ ++ E* p = dynamic_cast(r.get()); ++ return p ? shared(r, p) : shared(); + } + + // Базовый класс для объектов с ссылками (=> intrusive_ptr) +-- +1.7.1 + diff -Nru bombono-dvd-1.2.1/debian/patches/series bombono-dvd-1.2.1/debian/patches/series --- bombono-dvd-1.2.1/debian/patches/series 2012-11-08 05:43:00.000000000 +0000 +++ bombono-dvd-1.2.1/debian/patches/series 2013-05-02 21:09:16.000000000 +0000 @@ -1,4 +1,8 @@ 01_glib.patch 02_sparc.diff -# 05-fix_boost.patch 04_libav9.patch +c8490d754d2e3936b1ee5c996b6bd662a36d2aeb.patch +3b236fb21d9f0dd59cd5f8aa4a902dfc8af2e18b.patch +599066ccc8584495d9945b31d7ffda9f3523a202.patch +89949cc527f95c8f9ea07559b2a801d783359c03.patch +