Author

Topic: BUG FIX: compiling bitcoin against libboost 1.46 fails. (Read 1506 times)

sr. member
Activity: 308
Merit: 251
Oh interesting.

A little more digging and I found this:
http://www.boost.org/doc/libs/1_47_0/libs/filesystem/v3/doc/reference.html#path-deprecated-functions

I guess you probably found it also but posting here since it takes some searching to find it.

Not sure what the difference is between native_string() and string().  I'm unfamiliar with the documentation structure and I got lost trying to find the specifics on those functions.  But it does seem like string() is the one they want you to use.

I don;t know who I would speak to about getting this fixed in the git version ? or weather the have left it like that for backward compatibility ?
member
Activity: 70
Merit: 18
Oh interesting.

A little more digging and I found this:
http://www.boost.org/doc/libs/1_47_0/libs/filesystem/v3/doc/reference.html#path-deprecated-functions

I guess you probably found it also but posting here since it takes some searching to find it.

Not sure what the difference is between native_string() and string().  I'm unfamiliar with the documentation structure and I got lost trying to find the specifics on those functions.  But it does seem like string() is the one they want you to use.
sr. member
Activity: 308
Merit: 251
Looks like the new name for native_file_string() is file_string().  

Found more info here:
http://www.boost.org/doc/libs/1_47_0/libs/filesystem/v2/doc/index.htm

They say boost supports both V2 and V3 during this transition period, and V3 is the default starting in 1.46.
I did read that too but didn't compile. then I read that it has changed again apparently ? When I changed to just string it compiled fine and worked like a charm.

Code:
dagr33nster@drgr33n:/# dpkg -l | grep boost
ii  libboost-date-time1.46-dev        1.46.1-6                                 set of date-time libraries based on generic programming concepts
ii  libboost-date-time1.46.1          1.46.1-6                                 set of date-time libraries based on generic programming concepts
ii  libboost-dev                      1.46.1.1                                 Boost C++ Libraries development files (default version)
ii  libboost-filesystem-dev           1.46.1.1                                 filesystem operations in C++ (default version)
ii  libboost-filesystem1.42.0         1.42.0-4+b1                              filesystem operations (portable paths, iteration over directories, etc) in C++
ii  libboost-filesystem1.46-dev       1.46.1-6                                 filesystem operations (portable paths, iteration over directories, etc) in C++
ii  libboost-filesystem1.46.1         1.46.1-6                                 filesystem operations (portable paths, iteration over directories, etc) in C++
ii  libboost-graph-parallel1.46-dev   1.46.1-6                                 generic graph components and algorithms in C++
ii  libboost-graph-parallel1.46.1     1.46.1-6                                 generic graph components and algorithms in C++
ii  libboost-graph1.46-dev            1.46.1-6                                 generic graph components and algorithms in C++
ii  libboost-graph1.46.1              1.46.1-6                                 generic graph components and algorithms in C++
ii  libboost-iostreams1.42.0          1.42.0-4+b1                              Boost.Iostreams Library
ii  libboost-iostreams1.46-dev        1.46.1-6                                 Boost.Iostreams Library development files
ii  libboost-iostreams1.46.1          1.46.1-6                                 Boost.Iostreams Library
ii  libboost-math1.46-dev             1.46.1-6                                 Boost.Math Library development files
ii  libboost-math1.46.1               1.46.1-6                                 Boost.Math Library
ii  libboost-mpi-python1.46-dev       1.46.1-6                                 C++ interface to the Message Passing Interface (MPI), Python Bindings
ii  libboost-mpi-python1.46.1         1.46.1-6                                 C++ interface to the Message Passing Interface (MPI), Python Bindings
ii  libboost-mpi1.46-dev              1.46.1-6                                 C++ interface to the Message Passing Interface (MPI)
ii  libboost-mpi1.46.1                1.46.1-6                                 C++ interface to the Message Passing Interface (MPI)
ii  libboost-program-options1.46-dev  1.46.1-6                                 program options library for C++
ii  libboost-program-options1.46.1    1.46.1-6                                 program options library for C++
ii  libboost-python1.46-dev           1.46.1-6                                 Boost.Python Library development files
ii  libboost-python1.46.1             1.46.1-6                                 Boost.Python Library
ii  libboost-random1.46-dev           1.46.1-6                                 Boost Random Number Library
ii  libboost-random1.46.1             1.46.1-6                                 Boost Random Number Library
ii  libboost-regex1.46-dev            1.46.1-6                                 regular expression library for C++
ii  libboost-regex1.46.1              1.46.1-6                                 regular expression library for C++
ii  libboost-serialization1.46-dev    1.46.1-6                                 serialization library for C++
ii  libboost-serialization1.46.1      1.46.1-6                                 serialization library for C++
ii  libboost-signals1.46-dev          1.46.1-6                                 managed signals and slots library for C++
ii  libboost-signals1.46.1            1.46.1-6                                 managed signals and slots library for C++
ii  libboost-system1.42.0             1.42.0-4+b1                              Operating system (e.g. diagnostics support) library
ii  libboost-system1.46-dev           1.46.1-6                                 Operating system (e.g. diagnostics support) library
ii  libboost-system1.46.1             1.46.1-6                                 Operating system (e.g. diagnostics support) library
ii  libboost-test1.46-dev             1.46.1-6                                 components for writing and executing test suites
ii  libboost-test1.46.1               1.46.1-6                                 components for writing and executing test suites
ii  libboost-thread1.46-dev           1.46.1-6                                 portable C++ multi-threading
ii  libboost-thread1.46.1             1.46.1-6                                 portable C++ multi-threading
ii  libboost-wave1.46-dev             1.46.1-6                                 C99/C++ preprocessor library
ii  libboost-wave1.46.1               1.46.1-6                                 C99/C++ preprocessor library
ii  libboost1.46-all-dev              1.46.1-6                                 Boost C++ Libraries development files (ALL)
ii  libboost1.46-dev                  1.46.1-6                                 Boost C++ Libraries development files
member
Activity: 70
Merit: 18
Looks like the new name for native_file_string() is file_string(). 

Found more info here:
http://www.boost.org/doc/libs/1_47_0/libs/filesystem/v2/doc/index.htm

They say boost supports both V2 and V3 during this transition period, and V3 is the default starting in 1.46.
sr. member
Activity: 308
Merit: 251
Hey guys,

It seems as native_file_string() has been replaced in the latest version of boost with string(). could someone please check this out and let me know how to proceed ? With the following patch the latest git version compiles with boost 1.46.

Here's a patch Cheesy

Code:
diff -rupN bitcoin-orig//src/ui.cpp bitcoin//src/ui.cpp
--- bitcoin-orig//src/ui.cpp 2011-07-28 16:40:27.650383395 +0000
+++ bitcoin//src/ui.cpp 2011-07-28 16:45:07.596883583 +0000
@@ -1807,7 +1807,7 @@ void SetStartOnSystemStartup(bool fAutoS
 {
     if (!fAutoStart)
     {
-        unlink(GetAutostartFilePath().native_file_string().c_str());
+        unlink(GetAutostartFilePath().string().c_str());
     }
     else
     {

EDIT:

Just tested and everything seems to work fine Cheesy
Jump to: