* [gentoo-user] emerge amazonmp3 fails
@ 2009-03-11 20:30 Douglas J Hunley
2009-03-11 22:41 ` Willie Wong
0 siblings, 1 reply; 3+ messages in thread
From: Douglas J Hunley @ 2009-03-11 20:30 UTC (permalink / raw
To: gentoo-user
[-- Attachment #1: Type: text/plain, Size: 199 bytes --]
When trying to emerge amazonmp3, I'm getting a failure on the 'boost'
dependency. Any ideas? I believe I've attached everything relevant to the
build, if not, pls let me know what else is needed.
[-- Attachment #2: dev-libs.boost-1.34.1-r2.20090311-202538.log --]
[-- Type: text/x-log, Size: 78451 bytes --]
>>> Unpacking source...
>>> Unpacking boost-patches-1.34.1-3.tbz2 to /var/state/portage/portage/dev-libs/boost-1.34.1-r2/work
>>> Unpacking boost_1_34_1.tar.bz2 to /var/state/portage/portage/dev-libs/boost-1.34.1-r2/work
^[[32;01m*^[[0m Applying various patches (bugfixes/updates) ...
^[[32;01m*^[[0m 05_all_1.34.1-function.patch ...
^[[A^[[72C ^[[34;01m[ ^[[32;01mok^[[34;01m ]^[[0m
^[[32;01m*^[[0m 06_all_1.34.1-gcc43_regex-include.patch ...
^[[A^[[72C ^[[34;01m[ ^[[32;01mok^[[34;01m ]^[[0m
^[[32;01m*^[[0m 07_all_1.34.1-CVE-2008-0171_and_0172.patch ...
^[[A^[[72C ^[[34;01m[ ^[[32;01mok^[[34;01m ]^[[0m
^[[32;01m*^[[0m Done with patching
>>> Source unpacked in /var/state/portage/portage/dev-libs/boost-1.34.1-r2/work
>>> Compiling source in /var/state/portage/portage/dev-libs/boost-1.34.1-r2/work/boost_1_34_1 ...
^[[32;01m*^[[0m Writing new user-config.jam
^[[32;01m*^[[0m Using the following options to build:
^[[32;01m*^[[0m release debug-symbols=none optimization=none --user-config=/var/state/portage/portage/dev-libs/boost-1.34.1-r2/work/boost_1_34_1/user-config.jam
^[[32;01m*^[[0m Building static libraries
Building Boost.Regex with the optional Unicode/ICU support disabled.
Please refer to the Boost.Regex documentation for more information
(don't panic: this is a strictly optional feature).
...patience...
...patience...
...found 3719 targets...
...updating 479 targets...
MkDir1 bin.v2
MkDir1 bin.v2/libs
MkDir1 bin.v2/libs/python
MkDir1 bin.v2/libs/program_options
MkDir1 bin.v2/libs/program_options/build
MkDir1 bin.v2/libs/python/build
MkDir1 bin.v2/libs/program_options/build/gcc-4.3
MkDir1 bin.v2/libs/python/build/gcc-4.3
MkDir1 bin.v2/libs/program_options/build/gcc-4.3/release
MkDir1 bin.v2/libs/python/build/gcc-4.3/release
MkDir1 bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none
MkDir1 bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none
MkDir1 bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static
MkDir1 bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static
MkDir1 bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none
MkDir1 bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none
MkDir1 bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static
MkDir1 bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/cmdline.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/numeric.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/list.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/long.o
libs/python/src/list.cpp: In static member function 'static boost::python::detail::new_non_null_reference_t* boost::python::detail::list_base::call(const boost::python::api::object&)':
libs/python/src/list.cpp:17: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/dict.o
libs/python/src/long.cpp: In static member function 'static boost::python::detail::new_non_null_reference_t* boost::python::detail::long_base::call(const boost::python::api::object&)':
libs/python/src/long.cpp:13: warning: deprecated conversion from string constant to 'char*'
libs/python/src/long.cpp: In static member function 'static boost::python::detail::new_non_null_reference_t* boost::python::detail::long_base::call(const boost::python::api::object&, const boost::python::api::object&)':
libs/python/src/long.cpp:20: warning: deprecated conversion from string constant to 'char*'
libs/python/src/long.cpp: In constructor 'boost::python::detail::long_base::long_base()':
libs/python/src/long.cpp:26: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/tuple.o
libs/python/src/dict.cpp: In static member function 'static boost::python::detail::new_reference_t* boost::python::detail::dict_base::call(const boost::python::api::object&)':
libs/python/src/dict.cpp:33: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/str.o
libs/python/src/tuple.cpp: In static member function 'static boost::python::detail::new_reference_t* boost::python::detail::tuple_base::call(const boost::python::api::object&)':
libs/python/src/tuple.cpp:13: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/slice.o
libs/python/src/str.cpp: In static member function 'static boost::python::detail::new_reference_t* boost::python::detail::str_base::call(const boost::python::api::object&)':
libs/python/src/str.cpp:14: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In function 'boost::python::ssize_t boost::python::detail::<unnamed>::str_size_as_py_ssize_t(size_t)':
libs/python/src/str.cpp:29: warning: comparison between signed and unsigned integer expressions
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::capitalize() const':
libs/python/src/str.cpp:76: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:76: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::center(const boost::python::api::object&) const':
libs/python/src/str.cpp:77: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:77: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::expandtabs() const':
libs/python/src/str.cpp:132: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:132: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::expandtabs(const boost::python::api::object&) const':
libs/python/src/str.cpp:133: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:133: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::join(const boost::python::api::object&) const':
libs/python/src/str.cpp:239: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:239: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::ljust(const boost::python::api::object&) const':
libs/python/src/str.cpp:240: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:240: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::lower() const':
libs/python/src/str.cpp:241: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:241: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::lstrip() const':
libs/python/src/str.cpp:242: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:242: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::replace(const boost::python::api::object&, const boost::python::api::object&) const':
libs/python/src/str.cpp:243: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:243: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::replace(const boost::python::api::object&, const boost::python::api::object&, const boost::python::api::object&) const':
libs/python/src/str.cpp:244: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:244: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::rjust(const boost::python::api::object&) const':
libs/python/src/str.cpp:294: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:294: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::rstrip() const':
libs/python/src/str.cpp:295: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:295: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::strip() const':
libs/python/src/str.cpp:346: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:346: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::swapcase() const':
libs/python/src/str.cpp:347: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:347: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::title() const':
libs/python/src/str.cpp:348: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:348: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::translate(const boost::python::api::object&) const':
libs/python/src/str.cpp:349: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:349: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::translate(const boost::python::api::object&, const boost::python::api::object&) const':
libs/python/src/str.cpp:350: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:350: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::upper() const':
libs/python/src/str.cpp:351: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:351: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/from_python.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/registry.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/type_id.o
In file included from libs/python/src/converter/type_id.cpp:8:
./boost/python/detail/decorated_type_id.hpp: In member function 'bool boost::python::detail::decorated_type_info::operator<(const boost::python::detail::decorated_type_info&) const':
./boost/python/detail/decorated_type_id.hpp:59: warning: suggest parentheses around && within ||
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/enum.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/class.o
libs/python/src/object/enum.cpp:28: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/function.o
libs/python/src/object/class.cpp: In function 'PyObject* boost::python::static_data_descr_get(PyObject*, PyObject*, PyObject*)':
libs/python/src/object/class.cpp:77: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: In function 'int boost::python::static_data_descr_set(PyObject*, PyObject*, PyObject*)':
libs/python/src/object/class.cpp:98: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp:100: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: At global scope:
libs/python/src/object/class.cpp:362: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp:368: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: In member function 'void boost::python::objects::class_base::add_property(const char*, const boost::python::api::object&, const char*)':
libs/python/src/object/class.cpp:571: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: In member function 'void boost::python::objects::class_base::add_property(const char*, const boost::python::api::object&, const boost::python::api::object&, const char*)':
libs/python/src/object/class.cpp:581: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: In member function 'void boost::python::objects::class_base::add_static_property(const char*, const boost::python::api::object&)':
libs/python/src/object/class.cpp:590: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: In member function 'void boost::python::objects::class_base::add_static_property(const char*, const boost::python::api::object&, const boost::python::api::object&)':
libs/python/src/object/class.cpp:599: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/inheritance.o
In file included from /usr/lib/gcc/i686-pc-linux-gnu/4.3.3/include/g++-v4/ext/hash_set:64,
from ./boost/graph/adjacency_list.hpp:22,
from libs/python/src/object/inheritance.cpp:11:
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/include/g++-v4/backward/backward_warning.h:33:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
./boost/tuple/tuple_comparison.hpp: In function 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >]':
./boost/tuple/tuple_comparison.hpp:138: instantiated from 'bool boost::tuples::operator<(const boost::tuples::cons<T1, T2>&, const boost::tuples::cons<S1, S2>&) [with T1 = boost::python::type_info, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, S1 = boost::python::type_info, S2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
libs/python/src/object/inheritance.cpp:372: instantiated from here
./boost/tuple/tuple_comparison.hpp:73: warning: suggest parentheses around && within ||
./boost/tuple/tuple_comparison.hpp: In function 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]':
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >]'
./boost/tuple/tuple_comparison.hpp:138: instantiated from 'bool boost::tuples::operator<(const boost::tuples::cons<T1, T2>&, const boost::tuples::cons<S1, S2>&) [with T1 = boost::python::type_info, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, S1 = boost::python::type_info, S2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
libs/python/src/object/inheritance.cpp:372: instantiated from here
./boost/tuple/tuple_comparison.hpp:73: warning: suggest parentheses around && within ||
./boost/tuple/tuple_comparison.hpp: In function 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> >, T2 = boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> >]':
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >]'
./boost/tuple/tuple_comparison.hpp:138: instantiated from 'bool boost::tuples::operator<(const boost::tuples::cons<T1, T2>&, const boost::tuples::cons<S1, S2>&) [with T1 = boost::python::type_info, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, S1 = boost::python::type_info, S2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
libs/python/src/object/inheritance.cpp:372: instantiated from here
./boost/tuple/tuple_comparison.hpp:73: warning: suggest parentheses around && within ||
./boost/tuple/tuple_comparison.hpp: In function 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::null_type>, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::null_type>]':
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> >, T2 = boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> >]'
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >]'
./boost/tuple/tuple_comparison.hpp:138: instantiated from 'bool boost::tuples::operator<(const boost::tuples::cons<T1, T2>&, const boost::tuples::cons<S1, S2>&) [with T1 = boost::python::type_info, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, S1 = boost::python::type_info, S2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
libs/python/src/object/inheritance.cpp:372: instantiated from here
./boost/tuple/tuple_comparison.hpp:73: warning: suggest parentheses around && within ||
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/life_support.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/pickle_support.o
libs/python/src/object/function.cpp: In member function 'void boost::python::objects::function::argument_error(PyObject*, PyObject*) const':
libs/python/src/object/function.cpp:293: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/function.cpp: At global scope:
libs/python/src/object/function.cpp:628: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/function.cpp:628: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/function.cpp:628: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/function.cpp:628: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/function.cpp:628: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/errors.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/module.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/builtin_converters.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/arg_to_python_base.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/iterator.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/stl_iterator.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/object_protocol.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/object_operators.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/wrapper.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/import.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/exec.o
MkDir1 bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/numeric.o
libs/python/src/exec.cpp: In function 'boost::python::api::object boost::python::exec_file(boost::python::str, boost::python::api::object, boost::python::api::object)':
libs/python/src/exec.cpp:42: warning: deprecated conversion from string constant to 'char*'
gcc.archive bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/libboost_python-s.a
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/list.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/long.o
libs/python/src/list.cpp: In static member function 'static boost::python::detail::new_non_null_reference_t* boost::python::detail::list_base::call(const boost::python::api::object&)':
libs/python/src/list.cpp:17: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/dict.o
libs/python/src/long.cpp: In static member function 'static boost::python::detail::new_non_null_reference_t* boost::python::detail::long_base::call(const boost::python::api::object&)':
libs/python/src/long.cpp:13: warning: deprecated conversion from string constant to 'char*'
libs/python/src/long.cpp: In static member function 'static boost::python::detail::new_non_null_reference_t* boost::python::detail::long_base::call(const boost::python::api::object&, const boost::python::api::object&)':
libs/python/src/long.cpp:20: warning: deprecated conversion from string constant to 'char*'
libs/python/src/long.cpp: In constructor 'boost::python::detail::long_base::long_base()':
libs/python/src/long.cpp:26: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/tuple.o
libs/python/src/dict.cpp: In static member function 'static boost::python::detail::new_reference_t* boost::python::detail::dict_base::call(const boost::python::api::object&)':
libs/python/src/dict.cpp:33: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/str.o
libs/python/src/tuple.cpp: In static member function 'static boost::python::detail::new_reference_t* boost::python::detail::tuple_base::call(const boost::python::api::object&)':
libs/python/src/tuple.cpp:13: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/slice.o
libs/python/src/str.cpp: In static member function 'static boost::python::detail::new_reference_t* boost::python::detail::str_base::call(const boost::python::api::object&)':
libs/python/src/str.cpp:14: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In function 'boost::python::ssize_t boost::python::detail::<unnamed>::str_size_as_py_ssize_t(size_t)':
libs/python/src/str.cpp:29: warning: comparison between signed and unsigned integer expressions
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::capitalize() const':
libs/python/src/str.cpp:76: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:76: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::center(const boost::python::api::object&) const':
libs/python/src/str.cpp:77: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:77: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::expandtabs() const':
libs/python/src/str.cpp:132: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:132: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::expandtabs(const boost::python::api::object&) const':
libs/python/src/str.cpp:133: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:133: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::join(const boost::python::api::object&) const':
libs/python/src/str.cpp:239: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:239: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::ljust(const boost::python::api::object&) const':
libs/python/src/str.cpp:240: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:240: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::lower() const':
libs/python/src/str.cpp:241: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:241: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::lstrip() const':
libs/python/src/str.cpp:242: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:242: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::replace(const boost::python::api::object&, const boost::python::api::object&) const':
libs/python/src/str.cpp:243: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:243: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::replace(const boost::python::api::object&, const boost::python::api::object&, const boost::python::api::object&) const':
libs/python/src/str.cpp:244: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:244: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::rjust(const boost::python::api::object&) const':
libs/python/src/str.cpp:294: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:294: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::rstrip() const':
libs/python/src/str.cpp:295: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:295: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::strip() const':
libs/python/src/str.cpp:346: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:346: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::swapcase() const':
libs/python/src/str.cpp:347: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:347: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::title() const':
libs/python/src/str.cpp:348: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:348: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::translate(const boost::python::api::object&) const':
libs/python/src/str.cpp:349: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:349: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::translate(const boost::python::api::object&, const boost::python::api::object&) const':
libs/python/src/str.cpp:350: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:350: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp: In member function 'boost::python::str boost::python::detail::str_base::upper() const':
libs/python/src/str.cpp:351: warning: deprecated conversion from string constant to 'char*'
libs/python/src/str.cpp:351: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/from_python.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/registry.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/type_id.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/enum.o
In file included from libs/python/src/converter/type_id.cpp:8:
./boost/python/detail/decorated_type_id.hpp: In member function 'bool boost::python::detail::decorated_type_info::operator<(const boost::python::detail::decorated_type_info&) const':
./boost/python/detail/decorated_type_id.hpp:59: warning: suggest parentheses around && within ||
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/class.o
libs/python/src/object/enum.cpp:28: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/function.o
libs/python/src/object/class.cpp: In function 'PyObject* boost::python::static_data_descr_get(PyObject*, PyObject*, PyObject*)':
libs/python/src/object/class.cpp:77: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: In function 'int boost::python::static_data_descr_set(PyObject*, PyObject*, PyObject*)':
libs/python/src/object/class.cpp:98: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp:100: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: At global scope:
libs/python/src/object/class.cpp:362: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp:368: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: In member function 'void boost::python::objects::class_base::add_property(const char*, const boost::python::api::object&, const char*)':
libs/python/src/object/class.cpp:571: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: In member function 'void boost::python::objects::class_base::add_property(const char*, const boost::python::api::object&, const boost::python::api::object&, const char*)':
libs/python/src/object/class.cpp:581: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: In member function 'void boost::python::objects::class_base::add_static_property(const char*, const boost::python::api::object&)':
libs/python/src/object/class.cpp:590: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/class.cpp: In member function 'void boost::python::objects::class_base::add_static_property(const char*, const boost::python::api::object&, const boost::python::api::object&)':
libs/python/src/object/class.cpp:599: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/inheritance.o
In file included from /usr/lib/gcc/i686-pc-linux-gnu/4.3.3/include/g++-v4/ext/hash_set:64,
from ./boost/graph/adjacency_list.hpp:22,
from libs/python/src/object/inheritance.cpp:11:
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/include/g++-v4/backward/backward_warning.h:33:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
./boost/tuple/tuple_comparison.hpp: In function 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >]':
./boost/tuple/tuple_comparison.hpp:138: instantiated from 'bool boost::tuples::operator<(const boost::tuples::cons<T1, T2>&, const boost::tuples::cons<S1, S2>&) [with T1 = boost::python::type_info, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, S1 = boost::python::type_info, S2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
libs/python/src/object/inheritance.cpp:372: instantiated from here
./boost/tuple/tuple_comparison.hpp:73: warning: suggest parentheses around && within ||
./boost/tuple/tuple_comparison.hpp: In function 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]':
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >]'
./boost/tuple/tuple_comparison.hpp:138: instantiated from 'bool boost::tuples::operator<(const boost::tuples::cons<T1, T2>&, const boost::tuples::cons<S1, S2>&) [with T1 = boost::python::type_info, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, S1 = boost::python::type_info, S2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
libs/python/src/object/inheritance.cpp:372: instantiated from here
./boost/tuple/tuple_comparison.hpp:73: warning: suggest parentheses around && within ||
./boost/tuple/tuple_comparison.hpp: In function 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> >, T2 = boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> >]':
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >]'
./boost/tuple/tuple_comparison.hpp:138: instantiated from 'bool boost::tuples::operator<(const boost::tuples::cons<T1, T2>&, const boost::tuples::cons<S1, S2>&) [with T1 = boost::python::type_info, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, S1 = boost::python::type_info, S2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
libs/python/src/object/inheritance.cpp:372: instantiated from here
./boost/tuple/tuple_comparison.hpp:73: warning: suggest parentheses around && within ||
./boost/tuple/tuple_comparison.hpp: In function 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::null_type>, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::null_type>]':
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> >, T2 = boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> >]'
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
./boost/tuple/tuple_comparison.hpp:73: instantiated from 'bool boost::tuples::detail::lt(const T1&, const T2&) [with T1 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > > >]'
./boost/tuple/tuple_comparison.hpp:138: instantiated from 'bool boost::tuples::operator<(const boost::tuples::cons<T1, T2>&, const boost::tuples::cons<S1, S2>&) [with T1 = boost::python::type_info, T2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >, S1 = boost::python::type_info, S2 = boost::tuples::cons<boost::python::type_info, boost::tuples::cons<int, boost::tuples::cons<boost::python::type_info, boost::tuples::null_type> > >]'
libs/python/src/object/inheritance.cpp:372: instantiated from here
./boost/tuple/tuple_comparison.hpp:73: warning: suggest parentheses around && within ||
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/life_support.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/pickle_support.o
libs/python/src/object/function.cpp: In member function 'void boost::python::objects::function::argument_error(PyObject*, PyObject*) const':
libs/python/src/object/function.cpp:293: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/function.cpp: At global scope:
libs/python/src/object/function.cpp:628: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/function.cpp:628: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/function.cpp:628: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/function.cpp:628: warning: deprecated conversion from string constant to 'char*'
libs/python/src/object/function.cpp:628: warning: deprecated conversion from string constant to 'char*'
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/errors.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/module.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/builtin_converters.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/arg_to_python_base.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/iterator.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/stl_iterator.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/object_protocol.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/object_operators.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/wrapper.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/import.o
gcc.compile.c++ bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/exec.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/config_file.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/options_description.o
In file included from ./boost/token_iterator.hpp:25,
from ./boost/tokenizer.hpp:21,
from libs/program_options/src/options_description.cpp:18:
./boost/token_functions.hpp: In member function 'bool boost::offset_separator::operator()(InputIterator&, InputIterator, Token&)':
./boost/token_functions.hpp:338: warning: suggest explicit braces to avoid ambiguous 'else'
./boost/token_functions.hpp: In member function 'bool boost::char_separator<Char, Traits>::operator()(InputIterator&, InputIterator, Token&)':
./boost/token_functions.hpp:451: warning: suggest explicit braces to avoid ambiguous 'else'
libs/program_options/src/options_description.cpp: In member function 'boost::program_options::option_description::match_result boost::program_options::option_description::match(const std::string&, bool) const':
libs/program_options/src/options_description.cpp:74: warning: suggest explicit braces to avoid ambiguous 'else'
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/parsers.o
libs/python/src/exec.cpp: In function 'boost::python::api::object boost::python::exec_file(boost::python::str, boost::python::api::object, boost::python::api::object)':
libs/python/src/exec.cpp:42: warning: deprecated conversion from string constant to 'char*'
gcc.archive bin.v2/libs/python/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/libboost_python-mt-s.a
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/variables_map.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/value_semantic.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/positional_options.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/utf8_codecvt_facet.o
libs/program_options/src/value_semantic.cpp: In function 'void boost::program_options::validate(boost::any&, const std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::string*, int)':
libs/program_options/src/value_semantic.cpp:175: warning: suggest parentheses around && within ||
libs/program_options/src/value_semantic.cpp: In function 'void boost::program_options::validate(boost::any&, const std::vector<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, std::string*, int)':
libs/program_options/src/value_semantic.cpp:190: warning: suggest parentheses around && within ||
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/convert.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/winmain.o
MkDir1 bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/cmdline.o
gcc.archive bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/libboost_program_options-s.a
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/config_file.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/options_description.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/parsers.o
In file included from ./boost/token_iterator.hpp:25,
from ./boost/tokenizer.hpp:21,
from libs/program_options/src/options_description.cpp:18:
./boost/token_functions.hpp: In member function 'bool boost::offset_separator::operator()(InputIterator&, InputIterator, Token&)':
./boost/token_functions.hpp:338: warning: suggest explicit braces to avoid ambiguous 'else'
./boost/token_functions.hpp: In member function 'bool boost::char_separator<Char, Traits>::operator()(InputIterator&, InputIterator, Token&)':
./boost/token_functions.hpp:451: warning: suggest explicit braces to avoid ambiguous 'else'
libs/program_options/src/options_description.cpp: In member function 'boost::program_options::option_description::match_result boost::program_options::option_description::match(const std::string&, bool) const':
libs/program_options/src/options_description.cpp:74: warning: suggest explicit braces to avoid ambiguous 'else'
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/variables_map.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/value_semantic.o
libs/program_options/src/value_semantic.cpp: In function 'void boost::program_options::validate(boost::any&, const std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::string*, int)':
libs/program_options/src/value_semantic.cpp:175: warning: suggest parentheses around && within ||
libs/program_options/src/value_semantic.cpp: In function 'void boost::program_options::validate(boost::any&, const std::vector<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, std::string*, int)':
libs/program_options/src/value_semantic.cpp:190: warning: suggest parentheses around && within ||
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/positional_options.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/utf8_codecvt_facet.o
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/convert.o
...on 100th target...
gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/winmain.o
MkDir1 bin.v2/libs/iostreams
MkDir1 bin.v2/libs/iostreams/build
MkDir1 bin.v2/libs/iostreams/build/gcc-4.3
MkDir1 bin.v2/libs/iostreams/build/gcc-4.3/release
MkDir1 bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none
MkDir1 bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static
MkDir1 bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none
MkDir1 bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/file_descriptor.o
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/mapped_file.o
gcc.archive bin.v2/libs/program_options/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/libboost_program_options-mt-s.a
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/zlib.o
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/bzip2.o
MkDir1 bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/file_descriptor.o
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/mapped_file.o
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/zlib.o
gcc.archive bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/libboost_iostreams-s.a
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/bzip2.o
MkDir1 bin.v2/libs/graph
MkDir1 bin.v2/libs/graph/build
MkDir1 bin.v2/libs/graph/build/gcc-4.3
MkDir1 bin.v2/libs/graph/build/gcc-4.3/release
MkDir1 bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none
MkDir1 bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none/link-static
MkDir1 bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none
MkDir1 bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static
gcc.compile.c++ bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/read_graphviz_spirit.o
gcc.archive bin.v2/libs/iostreams/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/libboost_iostreams-mt-s.a
MkDir1 bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi
gcc.compile.c++ bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/read_graphviz_spirit.o
In file included from /usr/lib/gcc/i686-pc-linux-gnu/4.3.3/include/g++-v4/ext/hash_set:64,
from ./boost/graph/adjacency_list.hpp:22,
from ./boost/graph/graphviz.hpp:24,
from libs/graph/src/read_graphviz_spirit.cpp:28:
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/include/g++-v4/backward/backward_warning.h:33:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
In file included from ./boost/spirit/utility/impl/chset/range_run.hpp:119,
from ./boost/spirit/utility/impl/chset/basic_chset.hpp:16,
from ./boost/spirit/utility/chset.hpp:17,
from ./boost/spirit/utility/distinct.hpp:20,
from ./boost/graph/detail/read_graphviz_spirit.hpp:35,
from ./boost/graph/graphviz.hpp:770,
from libs/graph/src/read_graphviz_spirit.cpp:29:
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::clear(const boost::spirit::utility::impl::range<CharT>&)':
./boost/spirit/utility/impl/chset/range_run.ipp:167: warning: suggest explicit braces to avoid ambiguous 'else'
In file included from ./boost/spirit/attribute/closure.hpp:25,
from ./boost/spirit/attribute.hpp:37,
from ./boost/graph/detail/read_graphviz_spirit.hpp:38,
from ./boost/graph/graphviz.hpp:770,
from libs/graph/src/read_graphviz_spirit.cpp:29:
./boost/spirit/phoenix/operators.hpp: At global scope:
./boost/spirit/phoenix/operators.hpp:355: error: 'INT_MAX' was not declared in this scope
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = char]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = char]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = char]'
./boost/spirit/utility/chset.hpp:127: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = wchar_t]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = wchar_t]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = wchar_t]'
./boost/spirit/utility/chset.hpp:132: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = int]'
./boost/spirit/utility/chset.hpp:137: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = unsigned int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = unsigned int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = unsigned int]'
./boost/spirit/utility/chset.hpp:142: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = short int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = short int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = short int]'
./boost/spirit/utility/chset.hpp:147: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = short unsigned int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = short unsigned int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = short unsigned int]'
./boost/spirit/utility/chset.hpp:153: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = long int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = long int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = long int]'
./boost/spirit/utility/chset.hpp:158: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = long unsigned int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = long unsigned int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = long unsigned int]'
./boost/spirit/utility/chset.hpp:163: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = long long int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = long long int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = long long int]'
./boost/spirit/utility/chset.hpp:169: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = long long unsigned int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = long long unsigned int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = long long unsigned int]'
./boost/spirit/utility/chset.hpp:174: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
"i686-pc-linux-gnu-g++" -ftemplate-depth-128 -O2 -march=k8 -mmmx -msse -msse2 -m3dnow -pipe -finline-functions -Wno-inline -Wall -DBOOST_ALL_NO_LIB=1 -DBOOST_GRAPH_NO_LIB=1 -DNDEBUG -I"." -I"libs/graph/src" -c -o "bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/read_graphviz_spirit.o" "libs/graph/src/read_graphviz_spirit.cpp"
...failed gcc.compile.c++ bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/read_graphviz_spirit.o...
In file included from /usr/lib/gcc/i686-pc-linux-gnu/4.3.3/include/g++-v4/ext/hash_set:64,
from ./boost/graph/adjacency_list.hpp:22,
from ./boost/graph/graphviz.hpp:24,
from libs/graph/src/read_graphviz_spirit.cpp:28:
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/include/g++-v4/backward/backward_warning.h:33:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
In file included from ./boost/spirit/utility/impl/chset/range_run.hpp:119,
from ./boost/spirit/utility/impl/chset/basic_chset.hpp:16,
from ./boost/spirit/utility/chset.hpp:17,
from ./boost/spirit/utility/distinct.hpp:20,
from ./boost/graph/detail/read_graphviz_spirit.hpp:35,
from ./boost/graph/graphviz.hpp:770,
from libs/graph/src/read_graphviz_spirit.cpp:29:
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::clear(const boost::spirit::utility::impl::range<CharT>&)':
./boost/spirit/utility/impl/chset/range_run.ipp:167: warning: suggest explicit braces to avoid ambiguous 'else'
In file included from ./boost/spirit/attribute/closure.hpp:25,
from ./boost/spirit/attribute.hpp:37,
from ./boost/graph/detail/read_graphviz_spirit.hpp:38,
from ./boost/graph/graphviz.hpp:770,
from libs/graph/src/read_graphviz_spirit.cpp:29:
./boost/spirit/phoenix/operators.hpp: At global scope:
./boost/spirit/phoenix/operators.hpp:355: error: 'INT_MAX' was not declared in this scope
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = char]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = char]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = char]'
./boost/spirit/utility/chset.hpp:127: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = wchar_t]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = wchar_t]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = wchar_t]'
./boost/spirit/utility/chset.hpp:132: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = int]'
./boost/spirit/utility/chset.hpp:137: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = unsigned int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = unsigned int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = unsigned int]'
./boost/spirit/utility/chset.hpp:142: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = short int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = short int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = short int]'
./boost/spirit/utility/chset.hpp:147: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = short unsigned int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = short unsigned int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = short unsigned int]'
./boost/spirit/utility/chset.hpp:153: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = long int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = long int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = long int]'
./boost/spirit/utility/chset.hpp:158: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = long unsigned int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = long unsigned int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = long unsigned int]'
./boost/spirit/utility/chset.hpp:163: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = long long int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = long long int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = long long int]'
./boost/spirit/utility/chset.hpp:169: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
./boost/spirit/utility/impl/chset/range_run.ipp: In member function 'void boost::spirit::utility::impl::range_run<CharT>::set(const boost::spirit::utility::impl::range<CharT>&) [with CharT = long long unsigned int]':
./boost/spirit/utility/impl/chset/basic_chset.ipp:49: instantiated from 'void boost::spirit::basic_chset<CharT>::set(CharT) [with CharT = long long unsigned int]'
./boost/spirit/utility/impl/chset.ipp:117: instantiated from 'boost::spirit::chset<CharT>::chset(CharT) [with CharT = long long unsigned int]'
./boost/spirit/utility/chset.hpp:174: instantiated from here
./boost/spirit/utility/impl/chset/range_run.ipp:132: warning: suggest parentheses around && within ||
"i686-pc-linux-gnu-g++" -ftemplate-depth-128 -O2 -march=k8 -mmmx -msse -msse2 -m3dnow -pipe -finline-functions -Wno-inline -Wall -pthread -DBOOST_ALL_NO_LIB=1 -DBOOST_GRAPH_NO_LIB=1 -DNDEBUG -I"." -I"libs/graph/src" -c -o "bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/read_graphviz_spirit.o" "libs/graph/src/read_graphviz_spirit.cpp"
...failed gcc.compile.c++ bin.v2/libs/graph/build/gcc-4.3/release/debug-symbols-none/link-static/optimization-none/runtime-link-static/threading-multi/read_graphviz_spirit.o...
...failed updating 1 target...
...updated 132 targets...
^[[31;01m*^[[0m
^[[31;01m*^[[0m ERROR: dev-libs/boost-1.34.1-r2 failed.
^[[31;01m*^[[0m Call stack:
^[[31;01m*^[[0m ebuild.sh, line 49: Called src_compile
^[[31;01m*^[[0m environment, line 3170: Called die
^[[31;01m*^[[0m The specific snippet of code:
^[[31;01m*^[[0m bjam ${NUMJOBS} -q ${OPTIONS} threading=single,multi runtime-link=${linkoption} link=${linkoption} --prefix="${D}/usr" --layout=system || die "building boost failed";
^[[31;01m*^[[0m The die message:
^[[31;01m*^[[0m building boost failed
^[[31;01m*^[[0m
^[[31;01m*^[[0m If you need support, post the topmost build error, and the call stack if relevant.
^[[31;01m*^[[0m A complete build log is located at '/var/log/portage/elog/dev-libs:boost-1.34.1-r2:20090311-202538.log'.
^[[31;01m*^[[0m The ebuild environment file is located at '/var/state/portage/portage/dev-libs/boost-1.34.1-r2/temp/environment'.
^[[31;01m*^[[0m
[-- Attachment #3: emerge.info --]
[-- Type: text/plain, Size: 4340 bytes --]
Portage 2.1.6.7 (default/linux/x86/2008.0, gcc-4.3.3, glibc-2.9_p20081201-r2, 2.6.28-gentoo-r3 i686)
=================================================================
System uname: Linux-2.6.28-gentoo-r3-i686-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_3800+-with-glibc2.0
Timestamp of tree: Wed, 11 Mar 2009 04:15:01 +0000
ccache version 2.4 [enabled]
app-shells/bash: 3.2_p48-r1
dev-java/java-config: 1.3.7-r1, 2.1.7
dev-lang/python: 2.5.4-r2
dev-util/ccache: 2.4-r8
dev-util/cmake: 2.6.3
sys-apps/baselayout: 2.0.0
sys-apps/openrc: 0.4.3-r1
sys-apps/sandbox: 1.4
sys-devel/autoconf: 2.13, 2.63
sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils: 2.19.1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool: 2.2.6a
virtual/os-headers: 2.6.28-r1
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=k8 -mmmx -msse -msse2 -m3dnow -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=k8 -mmmx -msse -msse2 -m3dnow -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://gentoo.osuosl.org/ "
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/state/portage"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="3dnow X a52 aac aalib acl acpi alsa ao apache2 apm audiofile bash-completion berkdb bzip2 cairo cddb cdparanoia cdr cgi cli cracklib crypt cups curl curlwrappers cvs cxx dbus dga dri encode enscript exif expat fam fbcon ffmpeg fftw firefox flac fontconfig foomaticdb ftp gd gdbm gif gmp gpm gstreamer gtk hal iconv idn imagemagick imap imlib isdnlog javascript jpeg kde kontact lame latex lcms libcaca libnotify libsamplerate libwww lm_sensors lzo mad maildir mbox mhash midi mime mmap mmx mng mp3 mpeg mplayer mudflap musicbrainz ncurses nls nptl nptlonly nsplugin nvidia offensive ogg openexr opengl openmp pam pcre pdf perl php plasma png posix ppds pppd python qt3 qt4 quicktime rdesktop readline reflection ruby sasl sdl session sharedext sharedmem smp sndfile sockets spl sqlite sqlite3 sse ssl startup-notification subversion suid svg symlink sysfs syslog sysvipc taglib tcl tcpd theora threads tiff tk truetype unicode usb vim-syntax vorbis win32codecs x86 xcb xcomposite xine xml xorg xosd xpm xscreensaver xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="nv"
Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
[-- Attachment #4: environment --]
[-- Type: text/plain, Size: 126205 bytes --]
ALSA_CARDS=
ALSA_PCM_PLUGINS='adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol'
ANT_HOME=/usr/share/ant
APACHE2_MODULES='actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias'
ARCH=x86
CBUILD=i686-pc-linux-gnu
CDEFINE_default=__unix__
CFLAGS='-O2 -march=k8 -mmmx -msse -msse2 -m3dnow -pipe'
CFLAGS_default=
CHOST=i686-pc-linux-gnu
CHOST_default=i686-pc-linux-gnu
CLASSPATH=.
CROSSCOMPILE_OPTS=
CTARGET_default=i686-pc-linux-gnu
CVS_RSH=ssh
CXXFLAGS='-O2 -march=k8 -mmmx -msse -msse2 -m3dnow -pipe'
DEFAULT_ABI=default
DEPEND=$'icu? ( >=dev-libs/icu-3.2 )\n\t\tsys-libs/zlib\n\t\t~dev-util/boost-build-1.34.1 virtual/python'
DESCRIPTION='Boost Libraries for C++'
DESTTREE=/usr
DIROPTIONS=-m0755
EAPI=0
ELIBC=glibc
EPATCH_EXCLUDE=
EPATCH_FORCE=no
EPATCH_MULTI_MSG='Applying various patches (bugfixes/updates) ...'
EPATCH_OPTS='-g0 -E --no-backup-if-mismatch'
EPATCH_SINGLE_MSG=
EPATCH_SOURCE=/var/state/portage/portage/dev-libs/boost-1.34.1-r2/work/patches
EPATCH_SUFFIX=patch
EXEOPTIONS=-m0755
FEATURES='ccache distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch'
GCC_SPECS=
GDK_USE_XFT=1
GENERATION=2
HOMEPAGE=http://www.boost.org/
INHERITED='toolchain-funcs portability distutils flag-o-matic python multilib versionator check-reqs alternatives eutils'
INPUT_DEVICES='evdev keyboard mouse'
INSDESTTREE=
INSOPTIONS=-m0644
IUSE='debug doc icu pyste tools '
JAVAC=/etc/java-config-2/current-system-vm/bin/javac
JAVA_HOME=/etc/java-config-2/current-system-vm
JDK_HOME=/etc/java-config-2/current-system-vm
KDE_IS_PRELINKED=1
KERNEL=linux
KERNEL_ABI=default
KEYWORDS='alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86'
KV=2.6.28-gentoo-r3
LCD_DEVICES='bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text'
LDFLAGS=-Wl,-O1
LDFLAGS_default=
LIBDIR_default=lib
LIBOPTIONS=-m0644
LICENSE='freedist Boost-1.0'
MAKEOPTS=-j2
MULTILIB_ABIS=default
MY_P=boost_1_34_1
NETBEANS='apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml'
NOCOLOR=no
OPENGL_PROFILE=nvidia
PATCHSET_VERSION=1.34.1-3
PDEPEND=' '
PKG_CONFIG_PATH=/usr/qt/3/lib/pkgconfig
PORTAGE_COMPRESS_EXCLUDE_SUFFIXES='css gif htm[l]? jp[e]?g js pdf png'
PROFILE_ONLY_VARIABLES='ARCH ELIBC KERNEL USERLAND'
PROPERTIES=
PROVIDE=
PYTHONDONTWRITEBYTECODE=1
PYTHON_DONTCOMPILE=1
QMAKESPEC=linux-g++
QTDIR=/usr/qt/3
RDEPEND=$'icu? ( >=dev-libs/icu-3.2 )\n\t\tsys-libs/zlib\n\t\t~dev-util/boost-build-1.34.1\n\t\tpyste? ( dev-cpp/gccxml dev-python/elementtree ) '
RESTRICT=
S=/var/state/portage/portage/dev-libs/boost-1.34.1-r2/work/boost_1_34_1
SANDBOX_DEBUG=0
SANDBOX_DENY=/etc/ld.so.preload
SANDBOX_PID=27738
SANDBOX_PREDICT=:/dev/console:/dev/random:/proc/self/maps:/var/state/portage/portage/dev-libs/boost-1.34.1-r2/homedir:
SANDBOX_READ=:/:/dev/shm:/dev/stdin:/var/state/portage:/var/state/portage/ccache:
SANDBOX_VERBOSE=1
SANDBOX_WRITE=:/dev/console:/dev/fd:/dev/full:/dev/null:/dev/pts/:/dev/pty:/dev/shm:/dev/stderr:/dev/stdout:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/state/portage:/var/state/portage/ccache:/var/state/portage/portage/dev-libs/boost-1.34.1-r2/homedir/.bash_history:/var/tmp/:
SANE_CONFIG_DIR=/etc/sane.d
SLOT=0
SRC_URI=$'mirror://sourceforge/boost/boost_1_34_1.tar.bz2\n\tmirror://gentoo/boost-patches-1.34.1-3.tbz2'
USB_DEVFS_PATH=/dev/bus/usb
USE='elibc_glibc kernel_linux userland_GNU x86'
USERLAND=GNU
VIDEO_CARDS=
VMHANDLE=sun-jdk-1.4
XDG_DATA_DIRS=/usr/share:/usr/local/share:/usr/kde/3.5/share
_=PKG_INSTALL_MASK
_E_DOCDESTTREE_=
_E_EXEDESTTREE_=
___ECLASS_RECUR_MULTILIB=yes
___ECLASS_RECUR_TOOLCHAIN_FUNCS=yes
_pipestatus='0 0'
conf=boost-1.34.1-r2
python=python
__python_eclass_test ()
{
__python_version_extract 2.3;
echo -n "2.3 -> PYVER: $PYVER PYVER_MAJOR: $PYVER_MAJOR";
echo " PYVER_MINOR: $PYVER_MINOR PYVER_MICRO: $PYVER_MICRO";
__python_version_extract 2.3.4;
echo -n "2.3.4 -> PYVER: $PYVER PYVER_MAJOR: $PYVER_MAJOR";
echo " PYVER_MINOR: $PYVER_MINOR PYVER_MICRO: $PYVER_MICRO";
__python_version_extract 2.3.5;
echo -n "2.3.5 -> PYVER: $PYVER PYVER_MAJOR: $PYVER_MAJOR";
echo " PYVER_MINOR: $PYVER_MINOR PYVER_MICRO: $PYVER_MICRO";
__python_version_extract 2.4;
echo -n "2.4 -> PYVER: $PYVER PYVER_MAJOR: $PYVER_MAJOR";
echo " PYVER_MINOR: $PYVER_MINOR PYVER_MICRO: $PYVER_MICRO";
__python_version_extract 2.5b3;
echo -n "2.5b3 -> PYVER: $PYVER PYVER_MAJOR: $PYVER_MAJOR";
echo " PYVER_MINOR: $PYVER_MINOR PYVER_MICRO: $PYVER_MICRO"
}
__python_version_extract ()
{
local verstr=$1;
export PYVER_MAJOR=${verstr:0:1};
export PYVER_MINOR=${verstr:2:1};
if [[ ${verstr:3:1} == . ]]; then
export PYVER_MICRO=${verstr:4};
fi;
export PYVER="${PYVER_MAJOR}.${PYVER_MINOR}"
}
__versionator__test_version_compare ()
{
__versionator_shopt_toggle on;
local lt=1 eq=2 gt=3 p q;
function __versionator__test_version_compare_t ()
{
version_compare "${1}" "${3}";
local r=$?;
[[ ${r} -eq ${2} ]] || echo "FAIL: ${@} (got ${r} exp ${2})"
};
echo "
0 $lt 1
1 $lt 2
2 $gt 1
2 $eq 2
0 $eq 0
10 $lt 20
68 $eq 068
068 $gt 67
068 $lt 69
1.0 $lt 2.0
2.0 $eq 2.0
2.0 $gt 1.0
1.0 $gt 0.0
0.0 $eq 0.0
0.0 $lt 1.0
0.1 $lt 0.2
0.2 $eq 0.2
0.3 $gt 0.2
1.2 $lt 2.1
2.1 $gt 1.2
1.2.3 $lt 1.2.4
1.2.4 $gt 1.2.3
1.2.0 $eq 1.2
1.2.1 $gt 1.2
1.2 $lt 1.2.1
1.2b $eq 1.2b
1.2b $lt 1.2c
1.2b $gt 1.2a
1.2b $gt 1.2
1.2 $lt 1.2a
1.3 $gt 1.2a
1.3 $lt 1.3a
1.0_alpha7 $lt 1.0_beta7
1.0_beta $lt 1.0_pre
1.0_pre5 $lt 1.0_rc2
1.0_rc2 $lt 1.0
1.0_p1 $gt 1.0
1.0_p1-r1 $gt 1.0_p1
1.0_alpha6-r1 $gt 1.0_alpha6
1.0_beta6-r1 $gt 1.0_alpha6-r2
1.0_pre1 $lt 1.0-p1
1.0p $gt 1.0_p1
1.0r $gt 1.0-r1
1.6.15 $gt 1.6.10-r2
1.6.10-r2 $lt 1.6.15
" | while read a b c; do
[[ -z "${a}${b}${c}" ]] && continue;
__versionator__test_version_compare_t "${a}" "${b}" "${c}";
done;
for q in "alpha beta pre rc=${lt};${gt}" "p r=${gt};${lt}";
do
for p in ${q%%=*};
do
local c=${q##*=};
local alt=${c%%;*} agt=${c##*;};
__versionator__test_version_compare_t "1.0" $agt "1.0_${p}";
__versionator__test_version_compare_t "1.0" $agt "1.0_${p}1";
__versionator__test_version_compare_t "1.0" $agt "1.0_${p}068";
__versionator__test_version_compare_t "2.0_${p}" $alt "2.0";
__versionator__test_version_compare_t "2.0_${p}1" $alt "2.0";
__versionator__test_version_compare_t "2.0_${p}068" $alt "2.0";
__versionator__test_version_compare_t "1.0_${p}" $eq "1.0_${p}";
__versionator__test_version_compare_t "0.0_${p}" $lt "0.0_${p}1";
__versionator__test_version_compare_t "666_${p}3" $gt "666_${p}";
__versionator__test_version_compare_t "1_${p}7" $lt "1_${p}8";
__versionator__test_version_compare_t "1_${p}7" $eq "1_${p}7";
__versionator__test_version_compare_t "1_${p}7" $gt "1_${p}6";
__versionator__test_version_compare_t "1_${p}09" $eq "1_${p}9";
done;
done;
for p in "-r" "_p";
do
__versionator__test_version_compare_t "7.2${p}1" $lt "7.2${p}2";
__versionator__test_version_compare_t "7.2${p}2" $gt "7.2${p}1";
__versionator__test_version_compare_t "7.2${p}3" $gt "7.2${p}2";
__versionator__test_version_compare_t "7.2${p}2" $lt "7.2${p}3";
done;
__versionator_shopt_toggle off
}
__versionator_shopt_toggle ()
{
VERSIONATOR_RECURSION=${VERSIONATOR_RECURSION:-0};
case "$1" in
"on")
if [[ $VERSIONATOR_RECURSION -lt 1 ]]; then
VERSIONATOR_OLD_EXTGLOB=$(shopt -p extglob);
shopt -s extglob;
fi;
VERSIONATOR_RECURSION=$(( $VERSIONATOR_RECURSION + 1 ))
;;
"off")
VERSIONATOR_RECURSION=$(( $VERSIONATOR_RECURSION - 1 ));
if [[ $VERSIONATOR_RECURSION -lt 1 ]]; then
eval $VERSIONATOR_OLD_EXTGLOB;
fi
;;
esac;
return 0
}
_cdrom_locate_file_on_cd ()
{
local mline="";
local showedmsg=0 showjolietmsg=0;
while [[ -z ${CDROM_ROOT} ]]; do
local i=0;
local -a cdset=(${*//:/ });
if [[ -n ${CDROM_SET} ]]; then
cdset=(${cdset[${CDROM_SET}]});
fi;
while [[ -n ${cdset[${i}]} ]]; do
local dir=$(dirname ${cdset[${i}]});
local file=$(basename ${cdset[${i}]});
local point= node= fs= foo=;
while read point node fs foo; do
[[ " cd9660 iso9660 udf " != *" ${fs} "* ]] && ! [[ ${fs} == "subfs" && ",${opts}," == *",fs=cdfss,"* ]] && continue;
point=${point//\040/ };
[[ ! -d ${point}/${dir} ]] && continue;
[[ -z $(find "${point}/${dir}" -maxdepth 1 -iname "${file}") ]] && continue;
export CDROM_ROOT=${point};
export CDROM_SET=${i};
export CDROM_MATCH=${cdset[${i}]};
return;
done <<< "$(get_mounts)";
((++i));
done;
echo;
if [[ ${showedmsg} -eq 0 ]]; then
if [[ ${CDROM_TOTAL_CDS} -eq 1 ]]; then
if [[ -z ${CDROM_NAME} ]]; then
einfo "Please insert+mount the cdrom for ${PN} now !";
else
einfo "Please insert+mount the ${CDROM_NAME} cdrom now !";
fi;
else
if [[ -z ${CDROM_NAME_1} ]]; then
einfo "Please insert+mount cd #${CDROM_CURRENT_CD} for ${PN} now !";
else
local var="CDROM_NAME_${CDROM_CURRENT_CD}";
einfo "Please insert+mount the ${!var} cdrom now !";
fi;
fi;
showedmsg=1;
fi;
einfo "Press return to scan for the cd again";
einfo "or hit CTRL+C to abort the emerge.";
echo;
if [[ ${showjolietmsg} -eq 0 ]]; then
showjolietmsg=1;
else
ewarn "If you are having trouble with the detection";
ewarn "of your CD, it is possible that you do not have";
ewarn "Joliet support enabled in your kernel. Please";
ewarn "check that CONFIG_JOLIET is enabled in your kernel.";
ebeep 5;
fi;
read || die "something is screwed with your system";
done
}
_epatch_assert ()
{
local _pipestatus=${PIPESTATUS[*]};
[[ ${_pipestatus// /} -eq 0 ]]
}
_epatch_draw_line ()
{
[[ -z $1 ]] && set "$(printf "%65s" '')";
echo "${1//?/=}"
}
_filter-hardened ()
{
local f;
for f in "$@";
do
case "${f}" in
-fPIC | -fpic | -fPIE | -fpie | -Wl,pie | -pie)
gcc-specs-pie || continue;
is-flagq -nopie || append-flags -nopie
;;
-fstack-protector)
gcc-specs-ssp || continue;
is-flagq -fno-stack-protector || append-flags $(test-flags -fno-stack-protector)
;;
-fstack-protector-all)
gcc-specs-ssp-to-all || continue;
is-flagq -fno-stack-protector-all || append-flags $(test-flags -fno-stack-protector-all)
;;
-fno-strict-overflow)
gcc-specs-nostrict || continue;
is-flagq -fstrict-overflow || append-flags $(test-flags -fstrict-overflow)
;;
esac;
done
}
_filter-var ()
{
local f x VAR VAL;
declare -a new;
VAR=$1;
shift;
eval VAL=\${${VAR}};
for f in ${VAL};
do
for x in "$@";
do
[[ ${f} == ${x} ]] && continue 2;
done;
eval new\[\${\#new\[@]}]=\${f};
done;
eval export ${VAR}=\${new\[*]}
}
_gcc-install-dir ()
{
echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null | awk '$1=="install:" {print $2}')"
}
_gcc-specs-directive_raw ()
{
local cc=$(tc-getCC);
local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}');
${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN { pspec=""; spec=""; outside=1 }
$1=="*"directive":" { pspec=spec; spec=""; outside=0; next }
outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next }
spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next }
{ spec=spec $0 }
END { print spec }';
return 0
}
_gcc-specs-exists ()
{
[[ -f $(_gcc-install-dir)/$1 ]]
}
_is_flagq ()
{
local x;
for x in ${!1};
do
[[ ${x} == $2 ]] && return 0;
done;
return 1
}
alternatives_auto_makesym ()
{
local SYMLINK REGEX ALT myregex;
SYMLINK=$1;
REGEX=$2;
if [ "${REGEX:0:1}" != "/" ]; then
myregex="${SYMLINK%/*}/${REGEX}";
else
myregex=${REGEX};
fi;
ALT="$(for i in $(echo ${ROOT}${myregex}); do echo ${i#${ROOT}}; done | sort -r)";
alternatives_makesym ${SYMLINK} ${ALT}
}
alternatives_makesym ()
{
local ALTERNATIVES="";
local SYMLINK="";
local alt pref;
SYMLINK=$1;
pref=$(echo ${ROOT} | sed 's:/$::');
shift;
ALTERNATIVES=$@;
for alt in ${ALTERNATIVES};
do
if [ -f "${pref}${alt}" ]; then
if [ "${alt%/*}" = "${SYMLINK%/*}" ]; then
einfo "Linking ${alt} to ${pref}${SYMLINK} (relative)";
ln -sf ${alt##*/} ${pref}${SYMLINK};
else
einfo "Linking ${alt} to ${pref}${SYMLINK} (absolute)";
ln -sf ${pref}${alt} ${pref}${SYMLINK};
fi;
break;
fi;
done;
if [ ! -L ${pref}${SYMLINK} ]; then
ewarn "Unable to establish ${pref}${SYMLINK} symlink";
else
if [ ! -f "`dirname ${pref}${SYMLINK}`/`readlink ${pref}${SYMLINK}`" -a ! -f "`readlink ${pref}${SYMLINK}`" ]; then
ewarn "Removing dead symlink ${pref}${SYMLINK}";
rm -f ${pref}${SYMLINK};
fi;
fi
}
alternatives_pkg_postinst ()
{
if [ -n "${ALTERNATIVES}" -a -n "${SOURCE}" ]; then
alternatives_makesym ${SOURCE} ${ALTERNATIVES};
fi
}
alternatives_pkg_postrm ()
{
if [ -n "${ALTERNATIVES}" -a -n "${SOURCE}" ]; then
alternatives_makesym ${SOURCE} ${ALTERNATIVES};
fi
}
append-cppflags ()
{
[[ -z $* ]] && return 0;
export CPPFLAGS="${CPPFLAGS} $*";
return 0
}
append-cxxflags ()
{
[[ -z $* ]] && return 0;
export CXXFLAGS="${CXXFLAGS} $*";
return 0
}
append-fflags ()
{
[[ -z $* ]] && return 0;
export FFLAGS="${FFLAGS} $*";
export FCFLAGS="${FCFLAGS} $*";
return 0
}
append-flags ()
{
[[ -z $* ]] && return 0;
export CFLAGS="${CFLAGS} $*";
export CXXFLAGS="${CXXFLAGS} $*";
export FFLAGS="${FFLAGS} $*";
export FCFLAGS="${FCFLAGS} $*";
return 0
}
append-ldflags ()
{
[[ -z $* ]] && return 0;
local flag;
for flag in "$@";
do
[[ ${flag} == -l* ]] && ewarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS";
done;
export LDFLAGS="${LDFLAGS} $*";
return 0
}
append-lfs-flags ()
{
[[ -n $@ ]] && die "append-lfs-flags takes no arguments";
append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
}
bindnow-flags ()
{
ewarn "QA: stop using the bindnow-flags function ... simply drop it from your ebuild"
}
built_with_use ()
{
local hidden="no";
if [[ $1 == "--hidden" ]]; then
hidden="yes";
shift;
fi;
local missing_action="die";
if [[ $1 == "--missing" ]]; then
missing_action=$2;
shift;
shift;
case ${missing_action} in
true | false | die)
;;
*)
die "unknown action '${missing_action}'"
;;
esac;
fi;
local opt=$1;
[[ ${opt:0:1} = "-" ]] && shift || opt="-a";
local PKG=$(best_version $1);
[[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package";
shift;
local USEFILE=${ROOT}/var/db/pkg/${PKG}/USE;
local IUSEFILE=${ROOT}/var/db/pkg/${PKG}/IUSE;
if [[ ! -e ${USEFILE} ]] || [[ ! -e ${IUSEFILE} && ${hidden} == "no" ]]; then
case ${missing_action} in
true)
return 0
;;
false)
return 1
;;
die)
die "Unable to determine what USE flags $PKG was built with"
;;
esac;
fi;
if [[ ${hidden} == "no" ]]; then
local IUSE_BUILT=($(<"${IUSEFILE}"));
local expand;
for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]');
do
if [[ $1 == ${expand}_* ]]; then
expand="";
break;
fi;
done;
if [[ -n ${expand} ]]; then
if ! has $1 ${IUSE_BUILT[@]#[-+]}; then
case ${missing_action} in
true)
return 0
;;
false)
return 1
;;
die)
die "$PKG does not actually support the $1 USE flag!"
;;
esac;
fi;
fi;
fi;
local USE_BUILT=$(<${USEFILE});
while [[ $# -gt 0 ]]; do
if [[ ${opt} = "-o" ]]; then
has $1 ${USE_BUILT} && return 0;
else
has $1 ${USE_BUILT} || return 1;
fi;
shift;
done;
[[ ${opt} = "-a" ]]
}
cdrom_get_cds ()
{
local cdcnt=0;
local f=;
for f in "$@";
do
((++cdcnt));
export CDROM_CHECK_${cdcnt}="$f";
done;
export CDROM_TOTAL_CDS=${cdcnt};
export CDROM_CURRENT_CD=1;
if [[ -n ${CD_ROOT}${CD_ROOT_1} ]]; then
local var=;
cdcnt=0;
while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
((++cdcnt));
var="CD_ROOT_${cdcnt}";
[[ -z ${!var} ]] && var="CD_ROOT";
if [[ -z ${!var} ]]; then
eerror "You must either use just the CD_ROOT";
eerror "or specify ALL the CD_ROOT_X variables.";
eerror "In this case, you will need ${CDROM_TOTAL_CDS} CD_ROOT_X variables.";
die "could not locate CD_ROOT_${cdcnt}";
fi;
done;
export CDROM_ROOT=${CD_ROOT_1:-${CD_ROOT}};
einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}";
export CDROM_SET=-1;
for f in ${CDROM_CHECK_1//:/ };
do
((++CDROM_SET));
[[ -e ${CD_ROOT}/${f} ]] && break;
done;
export CDROM_MATCH=${f};
return;
fi;
if [[ ${CDROM_TOTAL_CDS} -eq 1 ]]; then
einfo "This ebuild will need the ${CDROM_NAME:-cdrom for ${PN}}";
echo;
einfo "If you do not have the CD, but have the data files";
einfo "mounted somewhere on your filesystem, just export";
einfo "the variable CD_ROOT so that it points to the";
einfo "directory containing the files.";
echo;
einfo "For example:";
einfo "export CD_ROOT=/mnt/cdrom";
echo;
else
if [[ -n ${CDROM_NAME_SET} ]]; then
cdcnt=0;
while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
((++cdcnt));
export CDROM_NAME_${cdcnt}="${CDROM_NAME_SET[$((${cdcnt}-1))]}";
done;
fi;
einfo "This package will need access to ${CDROM_TOTAL_CDS} cds.";
cdcnt=0;
while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
((++cdcnt));
var="CDROM_NAME_${cdcnt}";
[[ ! -z ${!var} ]] && einfo " CD ${cdcnt}: ${!var}";
done;
echo;
einfo "If you do not have the CDs, but have the data files";
einfo "mounted somewhere on your filesystem, just export";
einfo "the following variables so they point to the right place:";
einfon "";
cdcnt=0;
while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
((++cdcnt));
echo -n " CD_ROOT_${cdcnt}";
done;
echo;
einfo "Or, if you have all the files in the same place, or";
einfo "you only have one cdrom, you can export CD_ROOT";
einfo "and that place will be used as the same data source";
einfo "for all the CDs.";
echo;
einfo "For example:";
einfo "export CD_ROOT_1=/mnt/cdrom";
echo;
fi;
export CDROM_SET="";
export CDROM_CURRENT_CD=0;
cdrom_load_next_cd
}
cdrom_load_next_cd ()
{
local var;
((++CDROM_CURRENT_CD));
unset CDROM_ROOT;
var=CD_ROOT_${CDROM_CURRENT_CD};
[[ -z ${!var} ]] && var="CD_ROOT";
if [[ -z ${!var} ]]; then
var="CDROM_CHECK_${CDROM_CURRENT_CD}";
_cdrom_locate_file_on_cd ${!var};
else
export CDROM_ROOT=${!var};
fi;
einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}"
}
check_build_disk ()
{
[[ -z "${3}" ]] && die "Usage: check_build_disk where name needed";
check_build_msg_begin "${3}" "MBytes" "disk space at ${2}";
actual_space=$(df -Pm ${1} 2>/dev/null | sed -n '$s/\(\S\+\s\+\)\{3\}\([0-9]\+\).*/\2/p' 2>/dev/null );
if [[ "$?" == "0" && -n "${actual_space}" ]]; then
if [[ ${actual_space} -lt ${3} ]]; then
eend 1;
check_build_msg_ick "${3}" "MBytes" "disk space at ${2}";
else
eend 0;
fi;
else
eend 1;
ewarn "Couldn't figure out disk space, skipping ...";
fi
}
check_build_memory ()
{
[[ -n "${1}" ]] && die "Usage: check_build_memory";
check_build_msg_begin "${CHECKREQS_MEMORY}" "MBytes" "RAM";
if [[ -r /proc/meminfo ]]; then
actual_memory=$(sed -n -e '/MemTotal:/s/^[^:]*: *\([0-9]\+\) kB/\1/p' /proc/meminfo);
else
actual_memory=$(sysctl hw.physmem 2>/dev/null );
[[ "$?" == "0" ]] && actual_memory=$(echo $actual_memory | sed -e 's/^[^:=]*[:=]//' );
fi;
if [[ -n "${actual_memory}" ]]; then
if [[ ${actual_memory} -lt $((1024 * ${CHECKREQS_MEMORY})) ]]; then
eend 1;
check_build_msg_ick "${CHECKREQS_MEMORY}" "MBytes" "RAM";
else
eend 0;
fi;
else
eend 1;
ewarn "Couldn't determine amount of memory, skipping ...";
fi
}
check_build_msg_begin ()
{
ebegin "Checking for at least ${1}${2} ${3}"
}
check_build_msg_ick ()
{
if [[ "${CHECKREQS_ACTION}" == "error" ]]; then
eerror "Don't have at least ${1}${2} ${3}";
echo;
export CHECKREQS_NEED_DIE="yes";
else
ewarn "Don't have at least ${1}${2} ${3}";
echo;
export CHECKREQS_NEED_SLEEP="yes";
fi
}
check_build_msg_skip ()
{
ewarn "Skipping check for at least ${1}${2} ${3}"
}
check_license ()
{
local lic=$1;
if [ -z "${lic}" ]; then
lic="${PORTDIR}/licenses/${LICENSE}";
else
if [ -e "${PORTDIR}/licenses/${lic}" ]; then
lic="${PORTDIR}/licenses/${lic}";
else
if [ -e "${PWD}/${lic}" ]; then
lic="${PWD}/${lic}";
else
if [ -e "${lic}" ]; then
lic="${lic}";
fi;
fi;
fi;
fi;
[ ! -f "${lic}" ] && die "Could not find requested license ${lic}";
local l="`basename ${lic}`";
local shopts=$-;
local alic;
set -o noglob;
for alic in ${ACCEPT_LICENSE};
do
if [[ ${alic} == ${l} ]]; then
set +o noglob;
set -${shopts};
return 0;
fi;
done;
set +o noglob;
set -$shopts;
local licmsg=$(emktemp);
cat > ${licmsg} <<-EOF
**********************************************************
The following license outlines the terms of use of this
package. You MUST accept this license for installation to
continue. When you are done viewing, hit 'q'. If you
CTRL+C out of this, the install will not run!
**********************************************************
EOF
cat ${lic} >> ${licmsg};
${PAGER:-less} ${licmsg} || die "Could not execute pager (${PAGER}) to accept ${lic}";
einfon "Do you accept the terms of this license (${l})? [yes/no] ";
read alic;
case ${alic} in
yes | Yes | y | Y)
return 0
;;
*)
echo;
echo;
echo;
eerror "You MUST accept the license to continue! Exiting!";
die "Failed to accept license"
;;
esac
}
check_reqs ()
{
[[ -n "${1}" ]] && die "Usage: check_reqs";
export CHECKREQS_NEED_SLEEP="" CHECKREQS_NEED_DIE="";
if [[ "$CHECKREQS_ACTION" != "ignore" ]]; then
[[ -n "$CHECKREQS_MEMORY" ]] && check_build_memory;
[[ -n "$CHECKREQS_DISK_BUILD" ]] && check_build_disk "${T}" "\${T}" "${CHECKREQS_DISK_BUILD}";
[[ -n "$CHECKREQS_DISK_USR" ]] && check_build_disk "${ROOT}/usr" "\${ROOT}/usr" "${CHECKREQS_DISK_USR}";
[[ -n "$CHECKREQS_DISK_VAR" ]] && check_build_disk "${ROOT}/var" "\${ROOT}/var" "${CHECKREQS_DISK_VAR}";
fi;
if [[ -n "${CHECKREQS_NEED_SLEEP}" ]]; then
echo;
ewarn "Bad things may happen! You may abort the build by pressing ctrl+c in";
ewarn "the next 15 seconds.";
ewarn " ";
einfo "To make this kind of warning a fatal error, add a line to /etc/make.conf";
einfo "setting CHECKREQS_ACTION=\"error\". To skip build requirements checking,";
einfo "set CHECKREQS_ACTION=\"ignore\".";
epause 15;
fi;
if [[ -n "${CHECKREQS_NEED_DIE}" ]]; then
eerror "Bailing out as specified by CHECKREQS_ACTION";
die "Build requirements not met";
fi
}
check_reqs_conditional ()
{
[[ -n "${1}" ]] && die "Usage: check_reqs";
export CHECKREQS_NEED_SLEEP="" CHECKREQS_NEED_DIE="";
if [[ "$CHECKREQS_ACTION" != "ignore" ]]; then
[[ -n "$CHECKREQS_MEMORY" ]] && check_build_memory;
[[ -n "$CHECKREQS_DISK_BUILD" ]] && check_build_disk "${T}" "\${T}" "${CHECKREQS_DISK_BUILD}";
[[ -n "$CHECKREQS_DISK_USR" ]] && check_build_disk "${ROOT}/usr" "\${ROOT}/usr" "${CHECKREQS_DISK_USR}";
[[ -n "$CHECKREQS_DISK_VAR" ]] && check_build_disk "${ROOT}/var" "\${ROOT}/var" "${CHECKREQS_DISK_VAR}";
fi;
[[ -z "${CHECKREQS_NEED_SLEEP}" && -z "${CHECKREQS_NEED_DIE}" ]]
}
create_ml_includes ()
{
local dest=$1;
shift;
local basedirs=$(create_ml_includes-listdirs "$@");
create_ml_includes-makedestdirs ${dest} ${basedirs};
local file;
for file in $(create_ml_includes-allfiles ${basedirs});
do
( echo "/* Autogenerated by create_ml_includes() in multilib.eclass */";
local dir;
for dir in ${basedirs};
do
if [[ -f ${D}/${dir}/${file} ]]; then
echo "";
local sym=$(create_ml_includes-sym_for_dir ${dir} "$@");
if [[ ${sym/=} != "${sym}" ]]; then
echo "#if ${sym}";
else
if [[ ${sym::1} == "!" ]]; then
echo "#ifndef ${sym:1}";
else
echo "#ifdef ${sym}";
fi;
fi;
echo "# include <$(create_ml_includes-absolute ${dir}/${file})>";
echo "#endif /* ${sym} */";
fi;
done ) > "${D}/${dest}/${file}";
done
}
create_ml_includes-absolute ()
{
local dst="$(create_ml_includes-tidy_path $1)";
dst=(${dst//\// });
local i;
for ((i=0; i<${#dst[*]}; i++))
do
[ "${dst[i]}" == "include" ] && break;
done;
local strip_upto=$i;
for ((i=strip_upto+1; i<${#dst[*]}-1; i++))
do
echo -n ${dst[i]}/;
done;
echo -n ${dst[i]}
}
create_ml_includes-allfiles ()
{
local basedir file;
for basedir in "$@";
do
for file in $(find "${D}"/${basedir} -type f);
do
echo ${file/${D}\/${basedir}\//};
done;
done | sort | uniq
}
create_ml_includes-listdirs ()
{
local dirs;
local data;
for data in "$@";
do
dirs="${dirs} ${data/*:/}";
done;
echo ${dirs:1}
}
create_ml_includes-makedestdirs ()
{
local dest=$1;
shift;
local basedirs=$@;
dodir ${dest};
local basedir;
for basedir in ${basedirs};
do
local dir;
for dir in $(find "${D}"/${basedir} -type d);
do
dodir ${dest}/${dir/${D}\/${basedir}/};
done;
done
}
create_ml_includes-sym_for_dir ()
{
local dir=$1;
shift;
local data;
for data in "$@";
do
if [[ ${data} == *:${dir} ]]; then
echo ${data/:*/};
return 0;
fi;
done;
echo "Shouldn't be here -- create_ml_includes-sym_for_dir $1 $@";
exit 1
}
create_ml_includes-tidy_path ()
{
local removed=$1;
if [ -n "${removed}" ]; then
while [ "${removed}" != "${removed/\/\//\/}" ]; do
removed=${removed/\/\//\/};
done;
while [ "${removed}" != "${removed//\/.\//\/}" ]; do
removed=${removed//\/.\//\/};
done;
[ "${removed##*/}" = "." ] && removed=${removed%/*};
while [ "${removed}" != "${removed//\/..\/}" ]; do
local p1="${removed%%\/..\/*}";
local p2="${removed#*\/..\/}";
removed="${p1%\/*}/${p2}";
done;
[ "${removed##*/}" = ".." ] && removed=${removed%/*/*};
[ "${removed##*/}" = "" ] && removed=${removed%/*};
echo ${removed};
fi
}
delete_all_version_separators ()
{
__versionator_shopt_toggle on;
replace_all_version_separators "" "${1}";
__versionator_shopt_toggle off
}
delete_version_separator ()
{
__versionator_shopt_toggle on;
replace_version_separator "${1}" "" "${2}";
__versionator_shopt_toggle off
}
distutils_pkg_postinst ()
{
local pylibdir pymod;
if [[ -z "${PYTHON_MODNAME}" ]]; then
for pylibdir in "${ROOT}"/usr/$(get_libdir)/python*;
do
if [[ -d "${pylibdir}"/site-packages/${PN} ]]; then
PYTHON_MODNAME=${PN};
fi;
done;
fi;
if has_version ">=dev-lang/python-2.3"; then
python_version;
for pymod in ${PYTHON_MODNAME};
do
python_mod_optimize /usr/$(get_libdir)/python${PYVER}/site-packages/${pymod};
done;
fi
}
distutils_pkg_postrm ()
{
local moddir pylibdir pymod;
if [[ -z "${PYTHON_MODNAME}" ]]; then
for pylibdir in "${ROOT}"/usr/$(get_libdir)/python*;
do
if [[ -d "${pylibdir}"/site-packages/${PN} ]]; then
PYTHON_MODNAME=${PN};
fi;
done;
fi;
if has_version ">=dev-lang/python-2.3"; then
ebegin "Performing Python Module Cleanup ..";
if [[ -n "${PYTHON_MODNAME}" ]]; then
for pymod in ${PYTHON_MODNAME};
do
for pylibdir in "${ROOT}"/usr/$(get_libdir)/python*;
do
if [[ -d "${pylibdir}"/site-packages/${pymod} ]]; then
python_mod_cleanup "${pylibdir#${ROOT}}"/site-packages/${pymod};
fi;
done;
done;
else
python_mod_cleanup;
fi;
eend 0;
fi
}
distutils_python_tkinter ()
{
python_tkinter_exists
}
distutils_python_version ()
{
python_version
}
distutils_src_compile ()
{
${python} setup.py build "$@" || die "compilation failed"
}
distutils_src_install ()
{
python_need_rebuild;
pylibdir="$(${python} -c 'from distutils.sysconfig import get_python_lib; print get_python_lib()')";
[ -n "${pylibdir}" ] && dodir "${pylibdir}";
if has_version ">=dev-lang/python-2.3"; then
${python} setup.py install --root="${D}" --no-compile "$@" || die "python setup.py install failed";
else
${python} setup.py install --root="${D}" "$@" || die "python setup.py install failed";
fi;
DDOCS="CHANGELOG KNOWN_BUGS MAINTAINERS PKG-INFO CONTRIBUTORS TODO NEWS";
DDOCS="${DDOCS} Change* MANIFEST* README* AUTHORS";
for doc in ${DDOCS};
do
[ -s "$doc" ] && dodoc $doc;
done;
[ -n "${DOCS}" ] && dodoc ${DOCS}
}
distutils_src_prepare ()
{
rm -rf ez_setup*;
echo "def use_setuptools(*args, **kwargs): pass" > ez_setup.py
}
distutils_src_unpack ()
{
unpack ${A};
cd "${S}";
has ${EAPI:-0} 0 1 && distutils_src_prepare
}
dlopen_lib ()
{
if [[ ${ELIBC} != *BSD ]]; then
echo "-ldl";
fi
}
doicon ()
{
( local i j ret;
insinto /usr/share/pixmaps;
for i in "$@";
do
if [[ -f ${i} ]]; then
doins "${i}";
((ret+=$?));
else
if [[ -d ${i} ]]; then
for j in "${i}"/*.png;
do
doins "${j}";
((ret+=$?));
done;
else
((++ret));
fi;
fi;
done;
exit ${ret} )
}
domenu ()
{
( local i j ret=0;
insinto /usr/share/applications;
for i in "$@";
do
if [[ -f ${i} ]]; then
doins "${i}";
((ret+=$?));
else
if [[ -d ${i} ]]; then
for j in "${i}"/*.desktop;
do
doins "${j}";
((ret+=$?));
done;
else
((++ret));
fi;
fi;
done;
exit ${ret} )
}
ebeep ()
{
local n;
if [[ -z ${EBEEP_IGNORE} ]]; then
for ((n=1 ; n <= ${1:-5} ; n++))
do
echo -ne "\a";
sleep 0.1 >&/dev/null;
sleep 0,1 >&/dev/null;
echo -ne "\a";
sleep 1;
done;
fi
}
ecvs_clean ()
{
[[ -z $* ]] && set -- .;
find "$@" -type d -name 'CVS' -prune -print0 | xargs -0 rm -rf;
find "$@" -type f -name '.cvs*' -print0 | xargs -0 rm -rf
}
edos2unix ()
{
echo "$@" | xargs sed -i 's/\r$//'
}
egetent ()
{
case ${CHOST} in
*-darwin9)
local mytype=$1;
[[ "passwd" == $mytype ]] && mytype="Users";
[[ "group" == $mytype ]] && mytype="Groups";
case "$2" in
*[!0-9]*)
dscl . -read /$mytype/$2 2> /dev/null | grep RecordName
;;
*)
local mykey="UniqueID";
[[ $mytype == "Groups" ]] && mykey="PrimaryGroupID";
dscl . -search /$mytype $mykey $2 2> /dev/null
;;
esac
;;
*-darwin*)
case "$2" in
*[!0-9]*)
nidump $1 . | awk -F":" "{ if (\$1 ~ /^$2$/) {print \$0;exit;} }"
;;
*)
nidump $1 . | awk -F":" "{ if (\$3 == $2) {print \$0;exit;} }"
;;
esac
;;
*-freebsd* | *-dragonfly*)
local opts action="user";
[[ $1 == "passwd" ]] || action="group";
if [[ $2 == [[:digit:]]* ]]; then
[[ ${action} == "user" ]] && opts="-u" || opts="-g";
fi;
pw show ${action} ${opts} "$2" -q
;;
*-netbsd* | *-openbsd*)
grep "$2:\*:" /etc/$1
;;
*)
type -p nscd >&/dev/null && nscd -i "$1";
getent "$1" "$2"
;;
esac
}
egethome ()
{
ent=$(egetent passwd $1);
case ${CHOST} in
*-darwin* | *-freebsd* | *-dragonfly*)
echo ${ent} | cut -d: -f9
;;
*)
echo ${ent} | cut -d: -f6
;;
esac
}
egetshell ()
{
ent=$(egetent passwd "$1");
case ${CHOST} in
*-darwin* | *-freebsd* | *-dragonfly*)
echo ${ent} | cut -d: -f10
;;
*)
echo ${ent} cut -d: -f7
;;
esac
}
emktemp ()
{
local exe="touch";
[[ $1 == -d ]] && exe="mkdir" && shift;
local topdir=$1;
if [[ -z ${topdir} ]]; then
[[ -z ${T} ]] && topdir="/tmp" || topdir=${T};
fi;
if ! type -P mktemp > /dev/null; then
local tmp=/;
while [[ -e ${tmp} ]]; do
tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM};
done;
${exe} "${tmp}" || ${exe} -p "${tmp}";
echo "${tmp}";
else
if [[ ${exe} == "touch" ]]; then
TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX;
else
TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX;
fi;
fi
}
enewgroup ()
{
case ${EBUILD_PHASE} in
unpack | compile | test | install)
eerror "'enewgroup()' called from '${EBUILD_PHASE}()' which is not a pkg_* function.";
eerror "Package fails at QA and at life. Please file a bug.";
die "Bad package! enewgroup is only for use in pkg_* functions!"
;;
esac;
local egroup="$1";
shift;
if [ -z "${egroup}" ]; then
eerror "No group specified !";
die "Cannot call enewgroup without a group";
fi;
if [[ -n $(egetent group "${egroup}") ]]; then
return 0;
fi;
einfo "Adding group '${egroup}' to your system ...";
local opts=;
local egid="$1";
shift;
if [ ! -z "${egid}" ]; then
if [ "${egid}" -gt 0 ]; then
if [ -z "`egetent group ${egid}`" ]; then
if [[ "${CHOST}" == *-darwin* ]]; then
opts="${opts} ${egid}";
else
opts="${opts} -g ${egid}";
fi;
else
egid="next available; requested gid taken";
fi;
else
eerror "Groupid given but is not greater than 0 !";
die "${egid} is not a valid GID";
fi;
else
egid="next available";
fi;
einfo " - Groupid: ${egid}";
local eextra="$@";
opts="${opts} ${eextra}";
local oldsandbox="${SANDBOX_ON}";
export SANDBOX_ON="0";
case ${CHOST} in
*-darwin*)
if [ ! -z "${eextra}" ]; then
einfo "Extra options are not supported on Darwin/OS X yet";
einfo "Please report the ebuild along with the info below";
einfo "eextra: ${eextra}";
die "Required function missing";
fi;
case ${egid} in
*[!0-9]*)
for ((egid = 101; egid <= 999; egid++))
do
[[ -z $(egetent group ${egid}) ]] && break;
done
;;
esac;
dscl . create /groups/${egroup} gid ${egid};
dscl . create /groups/${egroup} passwd '*'
;;
*-freebsd* | *-dragonfly*)
case ${egid} in
*[!0-9]*)
for ((egid = 101; egid <= 999; egid++))
do
[[ -z $(egetent group ${egid}) ]] && break;
done
;;
esac;
pw groupadd ${egroup} -g ${egid} || die "enewgroup failed"
;;
*-netbsd*)
case ${egid} in
*[!0-9]*)
for ((egid = 101; egid <= 999; egid++))
do
[[ -z $(egetent group ${egid}) ]] && break;
done
;;
esac;
groupadd -g ${egid} ${egroup} || die "enewgroup failed"
;;
*)
groupadd ${opts} ${egroup} || die "enewgroup failed"
;;
esac;
export SANDBOX_ON="${oldsandbox}"
}
enewuser ()
{
case ${EBUILD_PHASE} in
unpack | compile | test | install)
eerror "'enewuser()' called from '${EBUILD_PHASE}()' which is not a pkg_* function.";
eerror "Package fails at QA and at life. Please file a bug.";
die "Bad package! enewuser is only for use in pkg_* functions!"
;;
esac;
local euser=$1;
shift;
if [[ -z ${euser} ]]; then
eerror "No username specified !";
die "Cannot call enewuser without a username";
fi;
if [[ -n $(egetent passwd "${euser}") ]]; then
return 0;
fi;
einfo "Adding user '${euser}' to your system ...";
local opts=;
local euid=$1;
shift;
if [[ -n ${euid} && ${euid} != -1 ]]; then
if [[ ${euid} -gt 0 ]]; then
if [[ -n $(egetent passwd ${euid}) ]]; then
euid="next";
fi;
else
eerror "Userid given but is not greater than 0 !";
die "${euid} is not a valid UID";
fi;
else
euid="next";
fi;
if [[ ${euid} == "next" ]]; then
for ((euid = 101; euid <= 999; euid++))
do
[[ -z $(egetent passwd ${euid}) ]] && break;
done;
fi;
opts="${opts} -u ${euid}";
einfo " - Userid: ${euid}";
local eshell=$1;
shift;
if [[ ! -z ${eshell} ]] && [[ ${eshell} != "-1" ]]; then
if [[ ! -e ${ROOT}${eshell} ]]; then
eerror "A shell was specified but it does not exist !";
die "${eshell} does not exist in ${ROOT}";
fi;
if [[ ${eshell} == */false || ${eshell} == */nologin ]]; then
eerror "Do not specify ${eshell} yourself, use -1";
die "Pass '-1' as the shell parameter";
fi;
else
for shell in /sbin/nologin /usr/sbin/nologin /bin/false /usr/bin/false /dev/null;
do
[[ -x ${ROOT}${shell} ]] && break;
done;
if [[ ${shell} == "/dev/null" ]]; then
eerror "Unable to identify the shell to use, proceeding with userland default.";
case ${USERLAND} in
GNU)
shell="/bin/false"
;;
BSD)
shell="/sbin/nologin"
;;
Darwin)
shell="/usr/sbin/nologin"
;;
*)
die "Unable to identify the default shell for userland ${USERLAND}"
;;
esac;
fi;
eshell=${shell};
fi;
einfo " - Shell: ${eshell}";
opts="${opts} -s ${eshell}";
local ehome=$1;
shift;
if [[ -z ${ehome} ]] || [[ ${ehome} == "-1" ]]; then
ehome="/dev/null";
fi;
einfo " - Home: ${ehome}";
opts="${opts} -d ${ehome}";
local egroups=$1;
shift;
if [[ ! -z ${egroups} ]]; then
local oldifs=${IFS};
local defgroup="" exgroups="";
export IFS=",";
for g in ${egroups};
do
export IFS=${oldifs};
if [[ -z $(egetent group "${g}") ]]; then
eerror "You must add group ${g} to the system first";
die "${g} is not a valid GID";
fi;
if [[ -z ${defgroup} ]]; then
defgroup=${g};
else
exgroups="${exgroups},${g}";
fi;
export IFS=",";
done;
export IFS=${oldifs};
opts="${opts} -g ${defgroup}";
if [[ ! -z ${exgroups} ]]; then
opts="${opts} -G ${exgroups:1}";
fi;
else
egroups="(none)";
fi;
einfo " - Groups: ${egroups}";
local oldsandbox=${SANDBOX_ON};
export SANDBOX_ON="0";
case ${CHOST} in
*-darwin*)
if [[ -z $@ ]]; then
dscl . create /users/${euser} uid ${euid};
dscl . create /users/${euser} shell ${eshell};
dscl . create /users/${euser} home ${ehome};
dscl . create /users/${euser} realname "added by portage for ${PN}";
local oldifs=${IFS};
export IFS=",";
for g in ${egroups};
do
dscl . merge /groups/${g} users ${euser};
done;
export IFS=${oldifs};
else
einfo "Extra options are not supported on Darwin yet";
einfo "Please report the ebuild along with the info below";
einfo "eextra: $@";
die "Required function missing";
fi
;;
*-freebsd* | *-dragonfly*)
if [[ -z $@ ]]; then
pw useradd ${euser} ${opts} -c "added by portage for ${PN}" die "enewuser failed";
else
einfo " - Extra: $@";
pw useradd ${euser} ${opts} "$@" || die "enewuser failed";
fi
;;
*-netbsd*)
if [[ -z $@ ]]; then
useradd ${opts} ${euser} || die "enewuser failed";
else
einfo " - Extra: $@";
useradd ${opts} ${euser} "$@" || die "enewuser failed";
fi
;;
*-openbsd*)
if [[ -z $@ ]]; then
useradd -u ${euid} -s ${eshell} -d ${ehome} -c "Added by portage for ${PN}" -g ${egroups} ${euser} || die "enewuser failed";
else
einfo " - Extra: $@";
useradd -u ${euid} -s ${eshell} -d ${ehome} -c "Added by portage for ${PN}" -g ${egroups} ${euser} "$@" || die "enewuser failed";
fi
;;
*)
if [[ -z $@ ]]; then
useradd ${opts} ${euser} -c "added by portage for ${PN}" || die "enewuser failed";
else
einfo " - Extra: $@";
useradd ${opts} ${euser} "$@" || die "enewuser failed";
fi
;;
esac;
if [[ ! -e ${ROOT}/${ehome} ]]; then
einfo " - Creating ${ehome} in ${ROOT}";
mkdir -p "${ROOT}/${ehome}";
chown ${euser} "${ROOT}/${ehome}";
chmod 755 "${ROOT}/${ehome}";
fi;
export SANDBOX_ON=${oldsandbox}
}
epatch ()
{
function _epatch_draw_line ()
{
[[ -z $1 ]] && set "$(printf "%65s" '')";
echo "${1//?/=}"
};
function _epatch_assert ()
{
local _pipestatus=${PIPESTATUS[*]};
[[ ${_pipestatus// /} -eq 0 ]]
};
local PIPE_CMD="";
local STDERR_TARGET="${T}/$$.out";
local PATCH_TARGET="${T}/$$.patch";
local PATCH_SUFFIX="";
local SINGLE_PATCH="no";
local x="";
unset P4CONFIG P4PORT P4USER;
if [ "$#" -gt 1 ]; then
local m="";
for m in "$@";
do
epatch "${m}";
done;
return 0;
fi;
if [ -n "$1" -a -f "$1" ]; then
SINGLE_PATCH="yes";
local EPATCH_SOURCE="$1";
local EPATCH_SUFFIX="${1##*\.}";
else
if [ -n "$1" -a -d "$1" ]; then
if [ "${EPATCH_FORCE}" = "yes" ] && [ -z "${EPATCH_SUFFIX}" ]; then
local EPATCH_SOURCE="$1/*";
else
local EPATCH_SOURCE="$1/*.${EPATCH_SUFFIX}";
fi;
else
if [[ ! -d ${EPATCH_SOURCE} ]] || [[ -n $1 ]]; then
if [ -n "$1" -a "${EPATCH_SOURCE}" = "${WORKDIR}/patch" ]; then
EPATCH_SOURCE="$1";
fi;
echo;
eerror "Cannot find \$EPATCH_SOURCE! Value for \$EPATCH_SOURCE is:";
eerror;
eerror " ${EPATCH_SOURCE}";
eerror " ( ${EPATCH_SOURCE##*/} )";
echo;
die "Cannot find \$EPATCH_SOURCE!";
fi;
local EPATCH_SOURCE="${EPATCH_SOURCE}/*.${EPATCH_SUFFIX}";
fi;
fi;
case ${EPATCH_SUFFIX##*\.} in
xz)
PIPE_CMD="xz -dc";
PATCH_SUFFIX="xz"
;;
lzma)
PIPE_CMD="lzma -dc";
PATCH_SUFFIX="lzma"
;;
bz2)
PIPE_CMD="bzip2 -dc";
PATCH_SUFFIX="bz2"
;;
gz | Z | z)
PIPE_CMD="gzip -dc";
PATCH_SUFFIX="gz"
;;
ZIP | zip)
PIPE_CMD="unzip -p";
PATCH_SUFFIX="zip"
;;
*)
PIPE_CMD="cat";
PATCH_SUFFIX="patch"
;;
esac;
if [ "${SINGLE_PATCH}" = "no" ]; then
einfo "${EPATCH_MULTI_MSG}";
fi;
for x in ${EPATCH_SOURCE};
do
if [ -f ${x} ] && ( [ "${SINGLE_PATCH}" = "yes" -o "${x/_all_}" != "${x}" -o "${x/_${ARCH}_}" != "${x}" ] || [ "${EPATCH_FORCE}" = "yes" ] ); then
local count=0;
local popts="${EPATCH_OPTS}";
local patchname=${x##*/};
if [ -n "${EPATCH_EXCLUDE}" ]; then
if [ "${EPATCH_EXCLUDE/${patchname}}" != "${EPATCH_EXCLUDE}" ]; then
continue;
fi;
fi;
if [ "${SINGLE_PATCH}" = "yes" ]; then
if [ -n "${EPATCH_SINGLE_MSG}" ]; then
einfo "${EPATCH_SINGLE_MSG}";
else
einfo "Applying ${patchname} ...";
fi;
else
einfo " ${patchname} ...";
fi;
echo "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
if [[ ${PATCH_SUFFIX} != "patch" ]]; then
echo -n "PIPE_COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
echo "${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
if ! ( ${PIPE_CMD} ${x} > ${PATCH_TARGET} ) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1; then
echo;
eerror "Could not extract patch!";
count=5;
break;
fi;
else
PATCH_TARGET="${x}";
fi;
local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }');
if [[ -n ${abs_paths} ]]; then
count=1;
echo "NOTE: skipping -p0 due to absolute paths in patch:" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
echo "${abs_paths}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
fi;
while [ "${count}" -lt 5 ]; do
_epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
echo -n "PATCH COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
echo "patch -p${count} ${popts} < ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
_epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
if ( cat ${PATCH_TARGET} | patch -p${count} ${popts} --dry-run -f;
_epatch_assert ) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1; then
_epatch_draw_line "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
echo "ACTUALLY APPLYING ${patchname} ..." >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
_epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
cat ${PATCH_TARGET} | patch -p${count} ${popts} >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real 2>&1;
_epatch_assert;
if [ "$?" -ne 0 ]; then
cat ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
echo;
eerror "A dry-run of patch command succeeded, but actually";
eerror "applying the patch failed!";
count=5;
fi;
rm -f ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
break;
fi;
count=$((count + 1));
done;
if [ "${PATCH_SUFFIX}" != "patch" ]; then
rm -f ${PATCH_TARGET};
fi;
if [ "${count}" -eq 5 ]; then
echo;
eerror "Failed Patch: ${patchname} !";
eerror " ( ${PATCH_TARGET} )";
eerror;
eerror "Include in your bugreport the contents of:";
eerror;
eerror " ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}";
echo;
die "Failed Patch: ${patchname}!";
fi;
rm -f ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
eend 0;
fi;
done;
if [ "${SINGLE_PATCH}" = "no" ]; then
einfo "Done with patching";
fi
}
epause ()
{
[[ -z ${EPAUSE_IGNORE} ]] && sleep ${1:-5}
}
epunt_cxx ()
{
local dir=$1;
[[ -z ${dir} ]] && dir=${S};
ebegin "Removing useless C++ checks";
local f;
find "${dir}" -name configure | while read f; do
patch --no-backup-if-mismatch -p0 "${f}" "${PORTDIR}/eclass/ELT-patches/nocxx/nocxx.patch" > /dev/null;
done;
eend 0
}
esvn_clean ()
{
[[ -z $* ]] && set -- .;
find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf
}
filter-flags ()
{
_filter-hardened "$@";
_filter-var CFLAGS "$@";
_filter-var CPPFLAGS "$@";
_filter-var CXXFLAGS "$@";
_filter-var FFLAGS "$@";
_filter-var FCFLAGS "$@";
return 0
}
filter-ldflags ()
{
_filter-var LDFLAGS "$@";
return 0
}
filter-lfs-flags ()
{
[[ -n $@ ]] && die "filter-lfs-flags takes no arguments";
filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
}
filter-mfpmath ()
{
local orig_mfpmath new_math prune_math;
orig_mfpmath=$(get-flag -mfpmath);
new_math=$(get-flag mfpmath);
new_math=" ${new_math//,/ } ";
prune_math="";
for prune_math in "$@";
do
new_math=${new_math/ ${prune_math} / };
done;
new_math=$(echo ${new_math});
new_math=${new_math// /,};
if [[ -z ${new_math} ]]; then
filter-flags ${orig_mfpmath};
else
replace-flags ${orig_mfpmath} -mfpmath=${new_math};
fi;
return 0
}
find_unpackable_file ()
{
local src=$1;
if [[ -z ${src} ]]; then
src=${DISTDIR}/${A};
else
if [[ -e ${DISTDIR}/${src} ]]; then
src=${DISTDIR}/${src};
else
if [[ -e ${PWD}/${src} ]]; then
src=${PWD}/${src};
else
if [[ -e ${src} ]]; then
src=${src};
fi;
fi;
fi;
fi;
[[ ! -e ${src} ]] && return 1;
echo "${src}"
}
gcc-fullversion ()
{
$(tc-getCC "$@") -dumpversion
}
gcc-major-version ()
{
gcc-version "$@" | cut -f1 -d.
}
gcc-micro-version ()
{
gcc-fullversion "$@" | cut -f3 -d. | cut -f1 -d-
}
gcc-minor-version ()
{
gcc-version "$@" | cut -f2 -d.
}
gcc-specs-directive ()
{
local directive subdname subdirective;
directive="$(_gcc-specs-directive_raw $1)";
while [[ ${directive} == *%\(*\)* ]]; do
subdname=${directive/*%\(};
subdname=${subdname/\)*};
subdirective="$(_gcc-specs-directive_raw ${subdname})";
directive="${directive//\%(${subdname})/${subdirective}}";
done;
echo "${directive}";
return 0
}
gcc-specs-nostrict ()
{
local directive;
directive=$(gcc-specs-directive cc1);
return $([[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]])
}
gcc-specs-now ()
{
local directive;
directive=$(gcc-specs-directive link_command);
return $([[ "${directive/\{!nonow:}" != "${directive}" ]])
}
gcc-specs-pie ()
{
local directive;
directive=$(gcc-specs-directive cc1);
return $([[ "${directive/\{!nopie:}" != "${directive}" ]])
}
gcc-specs-relro ()
{
local directive;
directive=$(gcc-specs-directive link_command);
return $([[ "${directive/\{!norelro:}" != "${directive}" ]])
}
gcc-specs-ssp ()
{
local directive;
directive=$(gcc-specs-directive cc1);
return $([[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]])
}
gcc-specs-ssp-to-all ()
{
local directive;
directive=$(gcc-specs-directive cc1);
return $([[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]])
}
gcc-version ()
{
gcc-fullversion "$@" | cut -f1,2 -d.
}
gen_usr_ldscript ()
{
local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname);
dodir /usr/${libdir};
if [[ $1 == "-a" ]]; then
auto=true;
shift;
dodir /${libdir};
fi;
output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p');
[[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )";
for lib in "$@";
do
if [[ ${USERLAND} == "Darwin" ]]; then
ewarn "Not creating fake dynamic library for $lib on Darwin;";
ewarn "making a symlink instead.";
dosym "/${libdir}/${lib}" "/usr/${libdir}/${lib}";
else
local tlib;
if ${auto}; then
lib="lib${lib}${suffix}";
mv "${D}"/usr/${libdir}/${lib}* "${D}"/${libdir}/ || die;
tlib=$(scanelf -qF'%S#F' "${D}"/${libdir}/${lib});
[[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}";
rm -f "${D}"/${libdir}/${lib};
else
tlib=${lib};
fi;
cat > "${D}/usr/${libdir}/${lib}" <<-END_LDSCRIPT
/* GNU ld script
Since Gentoo has critical dynamic libraries in /lib, and the static versions
in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
run into linking problems. This "fake" dynamic lib is a linker script that
redirects the linker to the real lib. And yes, this works in the cross-
compiling scenario as the sysroot-ed linker will prepend the real path.
See bug http://bugs.gentoo.org/4411 for more info.
*/
${output_format}
GROUP ( /${libdir}/${tlib} )
END_LDSCRIPT
fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}";
fi;
done
}
generate_options ()
{
LINK_OPTIONS="static shared";
if ! use debug; then
OPTIONS="release debug-symbols=none";
else
OPTIONS="debug";
fi;
OPTIONS="${OPTIONS} optimization=none";
use icu && OPTIONS="${OPTIONS} -sHAVE_ICU=1 -sICU_PATH=/usr";
OPTIONS="${OPTIONS} --user-config=${S}/user-config.jam"
}
generate_userconfig ()
{
einfo "Writing new user-config.jam";
distutils_python_version;
local compiler compilerVersion compilerExecutable;
if [[ ${CHOST} == *-darwin* ]]; then
compiler=darwin;
compilerVersion=$(gcc-version);
compilerExecutable=$(tc-getCXX);
append-ldflags -ldl;
else
compiler=gcc;
compilerVersion=$(gcc-version);
compilerExecutable=$(tc-getCXX);
fi;
cat > "${S}/user-config.jam" <<__EOF__
import toolset : using ;
import toolset : flags ;
using ${compiler} : ${compilerVersion} : ${compilerExecutable} : <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
using python : ${PYVER} : /usr : /usr/include/python${PYVER} : /usr/lib/python${PYVER} ;
__EOF__
}
get-flag ()
{
local f findflag="$1";
for f in ${CFLAGS} ${CXXFLAGS} ${FFLAGS} ${FCFLAGS};
do
if [ "${f/${findflag}}" != "${f}" ]; then
printf "%s\n" "${f/-${findflag}=}";
return 0;
fi;
done;
return 1
}
get_abi_ASFLAGS ()
{
get_abi_var ASFLAGS "$@"
}
get_abi_CDEFINE ()
{
get_abi_var CDEFINE "$@"
}
get_abi_CFLAGS ()
{
get_abi_var CFLAGS "$@"
}
get_abi_CHOST ()
{
get_abi_var CHOST "$@"
}
get_abi_CTARGET ()
{
get_abi_var CTARGET "$@"
}
get_abi_FAKE_TARGETS ()
{
get_abi_var FAKE_TARGETS "$@"
}
get_abi_LDFLAGS ()
{
get_abi_var LDFLAGS "$@"
}
get_abi_LIBDIR ()
{
get_abi_var LIBDIR "$@"
}
get_abi_var ()
{
local flag=$1;
local abi;
if [ $# -gt 1 ]; then
abi=${2};
else
if [ -n "${ABI}" ]; then
abi=${ABI};
else
if [ -n "${DEFAULT_ABI}" ]; then
abi=${DEFAULT_ABI};
else
abi="default";
fi;
fi;
fi;
local var="${flag}_${abi}";
echo ${!var}
}
get_after_major_version ()
{
__versionator_shopt_toggle on;
echo $(get_version_component_range 2- "${1:-${PV}}" );
__versionator_shopt_toggle off
}
get_all_abis ()
{
local order="";
if [[ -z ${MULTILIB_ABIS} ]]; then
echo "default";
return 0;
fi;
for x in ${MULTILIB_ABIS};
do
if [[ ${x} != ${DEFAULT_ABI} ]]; then
order="${order:+${order} }${x}";
fi;
done;
order="${order:+${order} }${DEFAULT_ABI}";
echo ${order};
return 0
}
get_all_libdirs ()
{
local libdirs="lib";
local abi;
local dir;
for abi in ${MULTILIB_ABIS};
do
[ "$(get_abi_LIBDIR ${abi})" != "lib" ] && libdirs="${libdirs} $(get_abi_LIBDIR ${abi})";
done;
echo "${libdirs}"
}
get_all_version_components ()
{
__versionator_shopt_toggle on;
local ver_str=${1:-${PV}} result result_idx=0;
result=();
if [[ "${VERSIONATOR_CACHE_VER_STR}" == "${ver_str}" ]]; then
echo ${VERSIONATOR_CACHE_RESULT};
__versionator_shopt_toggle off;
return;
fi;
export VERSIONATOR_CACHE_VER_STR="${ver_str}";
while [[ -n "$ver_str" ]]; do
case "${ver_str:0:1}" in
[[:digit:]])
result[$result_idx]="${ver_str%%[^[:digit:]]*}";
ver_str="${ver_str##+([[:digit:]])}";
result_idx=$(($result_idx + 1))
;;
[-_.])
result[$result_idx]="${ver_str:0:1}";
ver_str="${ver_str:1}";
result_idx=$(($result_idx + 1))
;;
[[:alpha:]])
local not_match="${ver_str##+([[:alpha:]])*([[:digit:]])}";
result[$result_idx]=${ver_str:0:$((${#ver_str} - ${#not_match}))};
ver_str="${not_match}";
result_idx=$(($result_idx + 1))
;;
*)
result[$result_idx]="${ver_str:0:1}";
ver_str="${ver_str:1}";
result_idx=$(($result_idx + 1))
;;
esac;
done;
export VERSIONATOR_CACHE_RESULT="${result[@]}";
echo ${result[@]};
__versionator_shopt_toggle off
}
get_bmake ()
{
if [[ ${USERLAND} == *BSD ]]; then
echo make;
else
if [[ ${USERLAND} == "Darwin" ]]; then
echo bsdmake;
else
echo pmake;
fi;
fi
}
get_install_abis ()
{
local order="";
if [[ -z ${MULTILIB_ABIS} ]]; then
echo "default";
return 0;
fi;
if [[ ${EMULTILIB_PKG} == "true" ]]; then
for x in ${MULTILIB_ABIS};
do
if [[ ${x} != "${DEFAULT_ABI}" ]]; then
hasq ${x} ${ABI_DENY} || ordera="${ordera} ${x}";
fi;
done;
hasq ${DEFAULT_ABI} ${ABI_DENY} || order="${ordera} ${DEFAULT_ABI}";
if [[ -n ${ABI_ALLOW} ]]; then
local ordera="";
for x in ${order};
do
if hasq ${x} ${ABI_ALLOW}; then
ordera="${ordera} ${x}";
fi;
done;
order=${ordera};
fi;
else
order=${DEFAULT_ABI};
fi;
if [[ -z ${order} ]]; then
die "The ABI list is empty. Are you using a proper multilib profile? Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package.";
fi;
echo ${order};
return 0
}
get_last_version_component_index ()
{
__versionator_shopt_toggle on;
echo $(( $(get_version_component_count "${1:-${PV}}" ) - 1 ));
__versionator_shopt_toggle off
}
get_libdir ()
{
local CONF_LIBDIR;
if [ -n "${CONF_LIBDIR_OVERRIDE}" ]; then
echo ${CONF_LIBDIR_OVERRIDE};
else
get_abi_LIBDIR;
fi
}
get_libdir_override ()
{
if has_multilib_profile; then
eerror "get_libdir_override called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org";
exit 1;
fi;
CONF_LIBDIR="$1";
CONF_LIBDIR_OVERRIDE="$1";
LIBDIR_default="$1"
}
get_libname ()
{
local libname;
local ver=$1;
case ${CHOST} in
*-cygwin | mingw* | *-mingw*)
libname="dll"
;;
*-darwin*)
libname="dylib"
;;
*)
libname="so"
;;
esac;
if [[ -z $* ]]; then
echo ".${libname}";
else
for ver in "$@";
do
case ${CHOST} in
*-darwin*)
echo ".${ver}.${libname}"
;;
*)
echo ".${libname}.${ver}"
;;
esac;
done;
fi
}
get_major_version ()
{
__versionator_shopt_toggle on;
local c;
c=($(get_all_version_components "${1:-${PV}}" ));
echo ${c[0]};
__versionator_shopt_toggle off
}
get_ml_incdir ()
{
local dir=/usr/include;
if [[ $# -gt 0 ]]; then
incdir=$1;
shift;
fi;
if [[ -z "${MULTILIB_ABIS}" ]]; then
echo ${incdir};
return 0;
fi;
local abi=${ABI-${DEFAULT_ABI}};
if [[ $# -gt 0 ]]; then
abi=$1;
shift;
fi;
if [[ -d "${dir}/gentoo-multilib/${abi}" ]]; then
echo ${dir}/gentoo-multilib/${abi};
else
echo ${dir};
fi
}
get_mounts ()
{
local point= node= fs= opts= foo=;
if [[ $(uname -s) == "Linux" ]]; then
while read node point fs opts foo; do
echo "${point} ${node} ${fs} ${opts}";
done < /proc/mounts;
return;
fi;
local IFS=' ';
LC_ALL=C mount -p | while read node point fs foo; do
opts=${fs#* };
fs=${fs%% *};
echo "${point// /\040} ${node// /\040} ${fs%% *} ${opts// /\040}";
done
}
get_multilibdir ()
{
if has_multilib_profile; then
eerror "get_multilibdir called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org";
exit 1;
fi;
echo ${CONF_MULTILIBDIR:=lib32}
}
get_version_component_count ()
{
__versionator_shopt_toggle on;
local a;
a=($(get_version_components "${1:-${PV}}" ));
echo ${#a[@]};
__versionator_shopt_toggle off
}
get_version_component_range ()
{
__versionator_shopt_toggle on;
local c v="${2:-${PV}}" range="${1}" range_start range_end i=-1 j=0;
c=($(get_all_version_components ${v} ));
range_start="${range%-*}";
range_start="${range_start:-1}";
range_end="${range#*-}";
range_end="${range_end:-${#c[@]}}";
while (( j < ${range_start} )); do
i=$(($i + 1));
[[ $i -gt ${#c[@]} ]] && __versionator_shopt_toggle off && return;
[[ -n "${c[${i}]//[-._]}" ]] && j=$(($j + 1));
done;
while (( j <= ${range_end} )); do
echo -n ${c[$i]};
[[ $i -gt ${#c[@]} ]] && __versionator_shopt_toggle off && return;
[[ -n "${c[${i}]//[-._]}" ]] && j=$(($j + 1));
i=$(($i + 1));
done;
__versionator_shopt_toggle off
}
get_version_components ()
{
__versionator_shopt_toggle on;
local c="$(get_all_version_components "${1:-${PV}}")";
c=(${c[@]//[-._]/ });
echo ${c[@]};
__versionator_shopt_toggle off
}
has_hardened ()
{
ewarn "has_hardened: deprecated, please use gcc-specs-{relro,now}()!" 1>&2;
test_version_info Hardened && return 0;
[[ -f ${GCC_SPECS} && ${GCC_SPECS} != ${GCC_SPECS/hardened/} ]]
}
has_m32 ()
{
[ "$(tc-arch)" = "amd64" ] && has_multilib_profile && return 0;
local temp=$(emktemp);
echo "int main() { return(0); }" > "${temp}".c;
MY_CC=$(tc-getCC);
${MY_CC/ .*/} -m32 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1;
local ret=$?;
rm -f "${temp}".c;
[[ ${ret} != 1 ]] && return 0;
return 1
}
has_m64 ()
{
local temp="$(emktemp)";
echo "int main() { return(0); }" > "${temp}".c;
MY_CC=$(tc-getCC);
${MY_CC/ .*/} -m64 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1;
local ret=$?;
rm -f "${temp}".c;
[[ ${ret} != 1 ]] && return 0;
return 1
}
has_multilib_profile ()
{
[ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ]
}
has_pic ()
{
ewarn "has_pic: deprecated, please use gcc-specs-pie()!" 1>&2;
[[ ${CFLAGS/-fPIC} != ${CFLAGS} || ${CFLAGS/-fpic} != ${CFLAGS} ]] || gcc-specs-pie
}
has_pie ()
{
ewarn "has_pie: deprecated, please use gcc-specs-pie()!" 1>&2;
[[ ${CFLAGS/-fPIE} != ${CFLAGS} || ${CFLAGS/-fpie} != ${CFLAGS} ]] || gcc-specs-pie
}
has_ssp ()
{
ewarn "has_ssp: deprecated, please use gcc-specs-ssp()!" 1>&2;
[[ ${CFLAGS/-fstack-protector} != ${CFLAGS} || -n $(echo | $(tc-getCC) ${CFLAGS} -E -dM - | grep __SSP__) ]] || gcc-specs-ssp
}
has_ssp_all ()
{
ewarn "has_ssp_all: deprecated, please use gcc-specs-ssp()!" 1>&2;
[[ ${CFLAGS/-fstack-protector-all} != ${CFLAGS} || -n $(echo | $(tc-getCC) ${CFLAGS} -E -dM - | grep __SSP_ALL__) ]] || gcc-specs-ssp-to-all
}
is-flag ()
{
is-flagq "$@" && echo true
}
is-flagq ()
{
[[ -n $2 ]] && die "Usage: is-flag <flag>";
_is_flagq CFLAGS $1 || _is_flagq CXXFLAGS $1 || _is_flagq FFLAGS $1 || _is_flagq FCFLAGS $1
}
is-ldflag ()
{
is-ldflagq "$@" && echo true
}
is-ldflagq ()
{
[[ -n $2 ]] && die "Usage: is-ldflag <flag>";
_is_flagq LDFLAGS $1
}
is-login-disabled ()
{
shell=$(egetshell "$1");
case ${shell} in
/bin/false | /usr/bin/false | /sbin/nologin | /usr/sbin/nologin)
return 0
;;
*)
return 1
;;
esac
}
is_final_abi ()
{
has_multilib_profile || return 0;
local ALL_ABIS=$(get_install_abis);
local LAST_ABI=${ALL_ABIS/* /};
[[ ${LAST_ABI} == ${ABI} ]]
}
make_desktop_entry ()
{
[[ -z $1 ]] && eerror "make_desktop_entry: You must specify the executable" && return 1;
local exec=${1};
local name=${2:-${PN}};
local icon=${3:-${PN}};
local type=${4};
local path=${5};
if [[ -z ${type} ]]; then
local catmaj=${CATEGORY%%-*};
local catmin=${CATEGORY##*-};
case ${catmaj} in
app)
case ${catmin} in
accessibility)
type=Accessibility
;;
admin)
type=System
;;
antivirus)
type=System
;;
arch)
type=Archiving
;;
backup)
type=Archiving
;;
cdr)
type=DiscBurning
;;
dicts)
type=Dictionary
;;
doc)
type=Documentation
;;
editors)
type=TextEditor
;;
emacs)
type=TextEditor
;;
emulation)
type=Emulator
;;
laptop)
type=HardwareSettings
;;
office)
type=Office
;;
pda)
type=PDA
;;
vim)
type=TextEditor
;;
xemacs)
type=TextEditor
;;
*)
type=
;;
esac
;;
dev)
type="Development"
;;
games)
case ${catmin} in
action | fps)
type=ActionGame
;;
arcade)
type=ArcadeGame
;;
board)
type=BoardGame
;;
emulation)
type=Emulator
;;
kids)
type=KidsGame
;;
puzzle)
type=LogicGame
;;
roguelike)
type=RolePlaying
;;
rpg)
type=RolePlaying
;;
simulation)
type=Simulation
;;
sports)
type=SportsGame
;;
strategy)
type=StrategyGame
;;
*)
type=
;;
esac;
type="Game;${type}"
;;
gnome)
type="Gnome;GTK"
;;
kde)
type="KDE;Qt"
;;
mail)
type="Network;Email"
;;
media)
case ${catmin} in
gfx)
type=Graphics
;;
radio)
type=Tuner
;;
sound)
type=Audio
;;
tv)
type=TV
;;
video)
type=Video
;;
*)
type=
;;
esac;
type="AudioVideo;${type}"
;;
net)
case ${catmin} in
dialup)
type=Dialup
;;
ftp)
type=FileTransfer
;;
im)
type=InstantMessaging
;;
irc)
type=IRCClient
;;
mail)
type=Email
;;
news)
type=News
;;
nntp)
type=News
;;
p2p)
type=FileTransfer
;;
*)
type=
;;
esac;
type="Network;${type}"
;;
sci)
case ${catmin} in
astro*)
type=Astronomy
;;
bio*)
type=Biology
;;
calc*)
type=Calculator
;;
chem*)
type=Chemistry
;;
elec*)
type=Electronics
;;
geo*)
type=Geology
;;
math*)
type=Math
;;
physics)
type=Physics
;;
visual*)
type=DataVisualization
;;
*)
type=
;;
esac;
type="Science;${type}"
;;
sys)
type="System"
;;
www)
case ${catmin} in
client)
type=WebBrowser
;;
*)
type=
;;
esac;
type="Network"
;;
*)
type=
;;
esac;
fi;
if [ "${SLOT}" == "0" ]; then
local desktop_name="${PN}";
else
local desktop_name="${PN}-${SLOT}";
fi;
local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop";
cat > "${desktop}" <<-EOF
[Desktop Entry]
Version=1.0
Name=${name}
Type=Application
Comment=${DESCRIPTION}
Exec=${exec}
TryExec=${exec%% *}
Icon=${icon}
Categories=${type};
EOF
[[ -n ${path} ]] && echo "Path=${path}" >> "${desktop}";
( insinto /usr/share/applications;
doins "${desktop}" )
}
make_session_desktop ()
{
[[ -z $1 ]] && eerror "$0: You must specify the title" && return 1;
[[ -z $2 ]] && eerror "$0: You must specify the command" && return 1;
local title=$1;
local command=$2;
local desktop=${T}/${wm:-${PN}}.desktop;
shift 2;
cat > "${desktop}" <<-EOF
[Desktop Entry]
Name=${title}
Comment=This session logs you into ${title}
Exec=${command} $*
TryExec=${command}
Type=XSession
EOF
( insinto /usr/share/xsessions;
doins "${desktop}" )
}
make_wrapper ()
{
local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5;
local tmpwrapper=$(emktemp);
cat > "${tmpwrapper}" <<EOF
#!/bin/sh
cd "${chdir:-.}"
if [ -n "${libdir}" ] ; then
if [ "\${LD_LIBRARY_PATH+set}" = "set" ] ; then
export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:${libdir}"
else
export LD_LIBRARY_PATH="${libdir}"
fi
fi
exec ${bin} "\$@"
EOF
chmod go+rx "${tmpwrapper}";
if [[ -n ${path} ]]; then
( exeinto "${path}";
newexe "${tmpwrapper}" "${wrapper}" ) || die;
else
newbin "${tmpwrapper}" "${wrapper}" || die;
fi
}
multilib_env ()
{
local CTARGET=${1:-${CTARGET}};
case ${CTARGET} in
x86_64*)
export CFLAGS_x86=${CFLAGS_x86--m32};
export CHOST_x86=${CTARGET/x86_64/i686};
export CTARGET_x86=${CHOST_x86};
export CDEFINE_x86="__i386__";
export LIBDIR_x86="lib";
export CFLAGS_amd64=${CFLAGS_amd64--m64};
export CHOST_amd64=${CTARGET};
export CTARGET_amd64=${CHOST_amd64};
export CDEFINE_amd64="__x86_64__";
export LIBDIR_amd64="lib64";
export MULTILIB_ABIS="amd64 x86";
export DEFAULT_ABI="amd64"
;;
mips64*)
export CFLAGS_o32=${CFLAGS_o32--mabi=32};
export CHOST_o32=${CTARGET/mips64/mips};
export CTARGET_o32=${CHOST_o32};
export CDEFINE_o32="_MIPS_SIM == _ABIO32";
export LIBDIR_o32="lib";
export CFLAGS_n32=${CFLAGS_n32--mabi=n32};
export CHOST_n32=${CTARGET};
export CTARGET_n32=${CHOST_n32};
export CDEFINE_n32="_MIPS_SIM == _ABIN32";
export LIBDIR_n32="lib32";
export CFLAGS_n64=${CFLAGS_n64--mabi=64};
export CHOST_n64=${CTARGET};
export CTARGET_n64=${CHOST_n64};
export CDEFINE_n64="_MIPS_SIM == _ABI64";
export LIBDIR_n64="lib64";
export MULTILIB_ABIS="n64 n32 o32";
export DEFAULT_ABI="n32"
;;
powerpc64*)
export CFLAGS_ppc=${CFLAGS_ppc--m32};
export CHOST_ppc=${CTARGET/powerpc64/powerpc};
export CTARGET_ppc=${CHOST_ppc};
export CDEFINE_ppc="!__powerpc64__";
export LIBDIR_ppc="lib";
export CFLAGS_ppc64=${CFLAGS_ppc64--m64};
export CHOST_ppc64=${CTARGET};
export CTARGET_ppc64=${CHOST_ppc64};
export CDEFINE_ppc64="__powerpc64__";
export LIBDIR_ppc64="lib64";
export MULTILIB_ABIS="ppc64 ppc";
export DEFAULT_ABI="ppc64"
;;
s390x*)
export CFLAGS_s390=${CFLAGS_s390--m31};
export CHOST_s390=${CTARGET/s390x/s390};
export CTARGET_s390=${CHOST_s390};
export CDEFINE_s390="!__s390x__";
export LIBDIR_s390="lib";
export CFLAGS_s390x=${CFLAGS_s390x--m64};
export CHOST_s390x=${CTARGET};
export CTARGET_s390x=${CHOST_s390x};
export CDEFINE_s390x="__s390x__";
export LIBDIR_s390x="lib64";
export MULTILIB_ABIS="s390x s390";
export DEFAULT_ABI="s390x"
;;
sparc*)
export CFLAGS_sparc32=${CFLAGS_sparc32};
export CHOST_sparc32=${CTARGET/sparc64/sparc};
export CTARGET_sparc32=${CHOST_sparc32};
export CDEFINE_sparc32="!__arch64__";
export LIBDIR_sparc32="lib";
export CFLAGS_sparc64=${CFLAGS_sparc64--m64};
export CHOST_sparc64=${CTARGET};
export CTARGET_sparc64=${CHOST_sparc64};
export CDEFINE_sparc64="__arch64__";
export LIBDIR_sparc64="lib64";
export MULTILIB_ABIS="${MULTILIB_ABIS-sparc64 sparc32}";
export DEFAULT_ABI="${DEFAULT_ABI-sparc64}"
;;
*)
export MULTILIB_ABIS="default";
export DEFAULT_ABI="default"
;;
esac
}
multilib_toolchain_setup ()
{
local v vv;
export ABI=$1;
if [[ ${ABI} != ${DEFAULT_ABI} ]]; then
if [[ ${DEFAULT_ABI_SAVED} != "true" ]]; then
for v in CHOST CBUILD AS CC CXX LD;
do
export __abi_saved_${v}="${!v}";
done;
export DEFAULT_ABI_SAVED="true";
fi;
export CHOST=$(get_abi_CHOST ${DEFAULT_ABI});
export AS="$(tc-getAS) $(get_abi_ASFLAGS)";
export CC="$(tc-getCC) $(get_abi_CFLAGS)";
export CXX="$(tc-getCXX) $(get_abi_CFLAGS)";
export LD="$(tc-getLD) $(get_abi_LDFLAGS)";
export CHOST=$(get_abi_CHOST $1);
export CBUILD=$(get_abi_CHOST $1);
else
if [[ ${DEFAULT_ABI_SAVED} == "true" ]]; then
for v in CHOST CBUILD AS CC CXX LD;
do
vv="__abi_saved_${v}";
export ${v}=${!vv};
done;
fi;
fi
}
newicon ()
{
( insinto /usr/share/pixmaps;
newins "$@" )
}
newmenu ()
{
( insinto /usr/share/applications;
newins "$@" )
}
number_abis ()
{
get_install_abis | wc -w
}
pkg_nofetch ()
{
_eapi0_pkg_nofetch "$@"
}
pkg_postinst ()
{
distutils_pkg_postinst "$@"
}
pkg_postrm ()
{
distutils_pkg_postrm "$@"
}
pkg_setup ()
{
if has test ${FEATURES}; then
CHECKREQS_DISK_BUILD="1024";
check_reqs;
ewarn "The tests may take several hours on a recent machine";
ewarn "but they will not fail (unless something weird happens ;-)";
ewarn "This is because the tests depend on the used compiler/-version";
ewarn "and the platform and upstream says that this is normal.";
ewarn "If you are interested in the results, please take a look at the";
ewarn "generated results page:";
ewarn " ${ROOT}usr/share/doc/${PF}/status/cs-$(uname).html";
ebeep 5;
fi
}
prep_ml_includes ()
{
if [[ $(number_abis) -gt 1 ]]; then
local dir;
local dirs;
local base;
if [[ $# -eq 0 ]]; then
dirs=/usr/include;
else
dirs="$@";
fi;
for dir in ${dirs};
do
base=${T}/gentoo-multilib/${dir}/gentoo-multilib;
mkdir -p "${base}";
[[ -d ${base}/${ABI} ]] && rm -rf "${base}/${ABI}";
mv "${D}/${dir}" "${base}/${ABI}";
done;
if is_final_abi; then
base=${T}/gentoo-multilib;
pushd "${base}";
find . | tar -c -T - -f - | tar -x --no-same-owner -f - -C "${D}";
popd;
set --;
for dir in ${dirs};
do
set -- "$@" "${dir}";
local abi;
for abi in $(get_install_abis);
do
set -- "$@" "$(get_abi_CDEFINE ${abi}):${dir}/gentoo-multilib/${abi}";
done;
create_ml_includes "$@";
done;
fi;
fi
}
preserve_old_lib ()
{
if [[ ${EBUILD_PHASE} != "preinst" ]]; then
eerror "preserve_old_lib() must be called from pkg_preinst() only";
die "Invalid preserve_old_lib() usage";
fi;
[[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]";
has preserve-libs ${FEATURES} && return 0;
local lib dir;
for lib in "$@";
do
[[ -e ${ROOT}/${lib} ]] || continue;
dir=${lib%/*};
dodir ${dir} || die "dodir ${dir} failed";
cp "${ROOT}"/${lib} "${D}"/${lib} || die "cp ${lib} failed";
touch "${D}"/${lib};
done
}
preserve_old_lib_notify ()
{
if [[ ${EBUILD_PHASE} != "postinst" ]]; then
eerror "preserve_old_lib_notify() must be called from pkg_postinst() only";
die "Invalid preserve_old_lib_notify() usage";
fi;
has preserve-libs ${FEATURES} && return 0;
local lib notice=0;
for lib in "$@";
do
[[ -e ${ROOT}/${lib} ]] || continue;
if [[ ${notice} -eq 0 ]]; then
notice=1;
ewarn "Old versions of installed libraries were detected on your system.";
ewarn "In order to avoid breaking packages that depend on these old libs,";
ewarn "the libraries are not being removed. You need to run revdep-rebuild";
ewarn "in order to remove these old dependencies. If you do not have this";
ewarn "helper program, simply emerge the 'gentoolkit' package.";
ewarn;
fi;
ewarn " # revdep-rebuild --library ${lib##*/}";
done;
if [[ ${notice} -eq 1 ]]; then
ewarn;
ewarn "Once you've finished running revdep-rebuild, it should be safe to";
ewarn "delete the old libraries. Here is a copy & paste for the lazy:";
for lib in "$@";
do
ewarn " # rm '${lib}'";
done;
fi
}
python_disable_pyc ()
{
export PYTHONDONTWRITEBYTECODE=1;
export PYTHON_DONTCOMPILE=1
}
python_enable_pyc ()
{
unset PYTHONDONTWRITEBYTECODE;
unset PYTHON_DONTCOMPILE
}
python_get_libdir ()
{
python_version;
echo "/usr/$(get_libdir)/python${PYVER}"
}
python_get_sitedir ()
{
echo "$(python_get_libdir)/site-packages"
}
python_makesym ()
{
alternatives_auto_makesym "/usr/bin/python" "python[0-9].[0-9]";
alternatives_auto_makesym "/usr/bin/python2" "python2.[0-9]"
}
python_mod_cleanup ()
{
local SEARCH_PATH=() myroot src_py;
[[ ${EBUILD_PHASE} != postrm ]] && die "${FUNCNAME} should only be run in pkg_postrm()";
myroot="${ROOT%/}";
if (($#)); then
SEARCH_PATH=("${@#/}");
SEARCH_PATH=("${SEARCH_PATH[@]/#/$myroot/}");
else
SEARCH_PATH=("${myroot}"/usr/lib*/python*/site-packages);
fi;
for path in "${SEARCH_PATH[@]}";
do
einfo "Cleaning orphaned Python bytecode from ${path} ..";
find "${path}" -name '*.py[co]' -print0 | while read -rd ''; do
src_py="${REPLY%[co]}";
[[ -f "${src_py}" ]] && continue;
einfo "Purging ${src_py}[co]";
rm -f "${src_py}"[co];
done;
find "${path}" -type d | sort -r | while read -r dir; do
rmdir "${dir}" 2> /dev/null;
done;
done
}
python_mod_compile ()
{
local f myroot myfiles=();
[[ ${EBUILD_PHASE} != postinst ]] && die "${FUNCNAME} should only be run in pkg_postinst()";
if [[ -n "${PYTHON_OVERRIDE_PYVER}" ]]; then
PYVER=${PYTHON_OVERRIDE_PYVER};
else
python_version;
fi;
myroot="${ROOT%/}";
for f in "$@";
do
[[ -f "${myroot}/${f}" ]] && myfiles+=("${myroot}/${f}");
done;
if ((${#myfiles[@]})); then
python${PYVER} ${myroot}/usr/$(get_libdir)/python${PYVER}/py_compile.py "${myfiles[@]}";
python${PYVER} -O ${myroot}/usr/$(get_libdir)/python${PYVER}/py_compile.py "${myfiles[@]}";
else
ewarn "No files to compile!";
fi
}
python_mod_exists ()
{
[[ -n "$1" ]] || die "${FUNCNAME} requires an argument!";
python -c "import $1" > /dev/null 2>&1
}
python_mod_optimize ()
{
local myroot mydirs=() myfiles=() myopts=();
[[ ${EBUILD_PHASE} != postinst ]] && die "${FUNCNAME} should only be run in pkg_postinst()";
myroot="${ROOT%/}";
while (($#)); do
case $1 in
-l | -f | -q)
myopts+=("$1")
;;
-d | -x)
myopts+=("$1" "$2");
shift
;;
-*)
ewarn "${FUNCNAME}: Ignoring compile option $1"
;;
*)
if [[ -d "${myroot}"/$1 ]]; then
mydirs+=("${myroot}/$1");
else
if [[ -f "${myroot}"/$1 ]]; then
myfiles+=("$1");
else
if [[ -e "${myroot}/$1" ]]; then
ewarn "${myroot}/$1 is not a file or directory!";
else
ewarn "${myroot}/$1 doesn't exist!";
fi;
fi;
fi
;;
esac;
shift;
done;
if [ -n "${PYTHON_OVERRIDE_PYVER}" ]; then
PYVER=${PYTHON_OVERRIDE_PYVER};
else
python_version;
fi;
myopts+=(-q);
ebegin "Byte compiling python modules for python-${PYVER} ..";
if ((${#mydirs[@]})); then
python${PYVER} "${myroot}"/usr/$(get_libdir)/python${PYVER}/compileall.py "${myopts[@]}" "${mydirs[@]}";
python${PYVER} -O "${myroot}"/usr/$(get_libdir)/python${PYVER}/compileall.py "${myopts[@]}" "${mydirs[@]}";
fi;
if ((${#myfiles[@]})); then
python_mod_compile "${myfiles[@]}";
fi;
eend $?
}
python_need_rebuild ()
{
python_version;
export PYTHON_NEED_REBUILD=${PYVER}
}
python_tkinter_exists ()
{
if ! python -c "import Tkinter" > /dev/null 2>&1; then
eerror "You need to recompile python with Tkinter support.";
eerror "Try adding: 'dev-lang/python tk'";
eerror "in to /etc/portage/package.use";
echo;
die "missing tkinter support with installed python";
fi
}
python_version ()
{
[[ -n "${PYVER}" ]] && return 0;
local tmpstr;
python=${python:-/usr/bin/python};
tmpstr="$(${python} -V 2>&1 )";
export PYVER_ALL="${tmpstr#Python }";
__python_version_extract $PYVER_ALL
}
raw-ldflags ()
{
local x input="$@";
[[ -z ${input} ]] && input=${LDFLAGS};
set --;
for x in ${input};
do
x=${x#-Wl,};
set -- "$@" ${x//,/ };
done;
echo "$@"
}
replace-cpu-flags ()
{
local newcpu="$#";
newcpu="${!newcpu}";
while [ $# -gt 1 ]; do
replace-flags "-march=${1}" "-march=${newcpu}";
replace-flags "-mcpu=${1}" "-mcpu=${newcpu}";
replace-flags "-mtune=${1}" "-mtune=${newcpu}";
shift;
done;
return 0
}
replace-flags ()
{
[[ $# != 2 ]] && echo && eerror "Usage: replace-flags <old flag> <new flag>" && die "replace-flags takes 2 arguments, not $#";
local f fset;
declare -a new_CFLAGS new_CXXFLAGS new_FFLAGS new_FCFLAGS;
for fset in CFLAGS CXXFLAGS FFLAGS FCFLAGS;
do
for f in ${!fset};
do
[[ ${f} == ${1} ]] && f=${2};
eval new_${fset}\[\${\#new_${fset}\[@]}]=\${f};
done;
eval export ${fset}=\${new_${fset}\[*]};
done;
return 0
}
replace-sparc64-flags ()
{
local SPARC64_CPUS="ultrasparc3 ultrasparc v9";
if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then
for x in ${SPARC64_CPUS};
do
CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}";
done;
else
for x in ${SPARC64_CPUS};
do
CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";
done;
fi;
if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then
for x in ${SPARC64_CPUS};
do
CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}";
done;
else
for x in ${SPARC64_CPUS};
do
CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";
done;
fi;
export CFLAGS CXXFLAGS
}
replace_all_version_separators ()
{
__versionator_shopt_toggle on;
local c;
c=($(get_all_version_components "${2:-${PV}}" ));
c="${c[@]//[-._]/$1}";
echo ${c// };
__versionator_shopt_toggle off
}
replace_version_separator ()
{
__versionator_shopt_toggle on;
local w i c found=0 v="${3:-${PV}}";
w=${1:-1};
c=($(get_all_version_components ${v} ));
if [[ "${w//[[:digit:]]/}" == "${w}" ]]; then
for ((i = 0 ; i < ${#c[@]} ; i = $i + 1 ))
do
if [[ "${c[${i}]}" == "${w}" ]]; then
c[${i}]="${2}";
break;
fi;
done;
else
for ((i = 0 ; i < ${#c[@]} ; i = $i + 1 ))
do
if [[ -n "${c[${i}]//[^-._]}" ]]; then
found=$(($found + 1));
if [[ "$found" == "${w}" ]]; then
c[${i}]="${2}";
break;
fi;
fi;
done;
fi;
c=${c[@]};
echo ${c// };
__versionator_shopt_toggle off
}
seq ()
{
local p=$(type -P seq);
case $# in
1)
min=1 max=$1 step=1
;;
2)
min=$1 max=$2 step=1
;;
3)
min=$1 max=$3 step=$2
;;
*)
die "seq called with wrong number of arguments"
;;
esac;
if [[ -z ${p} ]]; then
local reps;
if [[ ${step} != 0 ]]; then
reps=$(( ($max-$min) / $step +1 ));
else
reps=0;
fi;
jot $reps $min $max $step;
else
"${p}" $min $step $max;
fi
}
setup-allowed-flags ()
{
if [[ -z ${ALLOWED_FLAGS} ]]; then
export ALLOWED_FLAGS="-pipe";
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -O -O0 -O1 -O2 -mcpu -march -mtune";
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fstack-protector -fstack-protector-all";
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fbounds-checking -fno-strict-overflow";
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-PIE -fno-pie -fno-unit-at-a-time";
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -g -g[0-9] -ggdb -ggdb[0-9] -gstabs -gstabs+";
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-ident";
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -W* -w";
fi;
ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-stack-protector -fno-stack-protector-all -fno-strict-aliasing -fno-bounds-checking -fstrict-overflow";
ALLOWED_FLAGS="${ALLOWED_FLAGS} -mregparm -mno-app-regs -mapp-regs -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu -mieee -mieee-with-inexact -mschedule -mtls-direct-seg-refs -mno-tls-direct-seg-refs -mflat -mno-flat -mno-faster-structs -mfaster-structs -m32 -m64 -mabi -mlittle-endian -mbig-endian -EL -EB -fPIC -mlive-g0 -mcmodel -mstack-bias -mno-stack-bias -msecure-plt -m*-toc -D* -U*";
export UNSTABLE_FLAGS="-Os -O3 -freorder-blocks";
return 0
}
src_compile ()
{
NUMJOBS=$(sed -e 's/.*\(\-j[ 0-9]\+\) .*/\1/' <<< ${MAKEOPTS});
generate_userconfig;
generate_options;
elog "Using the following options to build: ";
elog " ${OPTIONS}";
export BOOST_ROOT=${S};
export BOOST_BUILD_PATH=/usr/share/boost-build;
for linkoption in ${LINK_OPTIONS};
do
einfo "Building ${linkoption} libraries";
bjam ${NUMJOBS} -q ${OPTIONS} threading=single,multi runtime-link=${linkoption} link=${linkoption} --prefix="${D}/usr" --layout=system || die "building boost failed";
done;
if use pyste; then
cd "${S}/libs/python/pyste/install";
distutils_src_compile;
fi;
if use tools; then
cd "${S}/tools/";
bjam ${NUMJOBS} -q release debug-symbols=none optimization=off --prefix="${D}/usr" --layout=system --user-config="${S}/user-config.jam" || die "building tools failed";
fi;
if has test ${FEATURES}; then
cd "${S}/tools/regression/build";
bjam -q ${OPTIONS} --prefix="${D}/usr" --layout=system || die "building regression test helpers failed";
fi
}
src_install ()
{
generate_options;
export BOOST_ROOT=${S};
export BOOST_BUILD_PATH=/usr/share/boost-build;
for linkoption in ${LINK_OPTIONS};
do
bjam -q ${OPTIONS} threading=single,multi runtime-link=${linkoption} link=${linkoption} --prefix="${D}/usr" --includedir="${D}/usr/include" --libdir="${D}/usr/$(get_libdir)" --layout=system install || die "install failed";
done;
dodoc README;
if use doc; then
dohtml -A pdf,txt *.htm *.png *.css -r doc libs more people wiki;
insinto /usr/share/doc/${PF}/html;
doins LICENSE_1_0.txt;
dosym /usr/include/boost /usr/share/doc/${PF}/html/boost;
fi;
cd "${D}/usr/$(get_libdir)";
if use debug; then
for lib in $(ls -1 libboost_*);
do
dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-d\././' -e 's/d\././' <<< ${lib})";
done;
fi;
for lib in $(ls -1 libboost_thread-mt.*);
do
dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})";
done;
if use pyste; then
cd "${S}/libs/python/pyste/install";
distutils_src_install;
fi;
if use tools; then
cd "${S}/dist";
dobin bin/*;
insinto /usr;
doins -r share;
fi;
if has test ${FEATURES}; then
cd "${S}/status";
docinto status;
dohtml *.{html,gif} ../boost.png;
dodoc regress.log;
fi
}
src_test ()
{
generate_options;
export BOOST_ROOT=${S};
export BOOST_BUILD_PATH=/usr/share/boost-build;
cd "${S}/status";
export LC_ALL="C";
bjam ${OPTIONS} --dump-tests 2>&1 | tee regress.log;
cat regress.log | "${S}/dist/bin/process_jam_log" --v2;
if test $? != 0; then
die "Postprocessing the build log failed";
fi;
cat > "${S}/status/comment.html" <<-__EOF__
<p>Tests are run on a <a href="http://www.gentoo.org">Gentoo</a> system.</p>
__EOF__
"${S}/dist/bin/compiler_status" --v2 --comment "${S}/status/comment.html" "${S}" cs-$(uname).html cs-$(uname)-links.html;
if test $? != 0; then
die "Generating the build log html summary page failed";
fi;
sed -i -e 's|../boost.png|boost.png|' *.html
}
src_unpack ()
{
unpack ${A};
cd "${S}";
EPATCH_SOURCE="${WORKDIR}/patches";
EPATCH_SUFFIX="patch";
epatch;
rm boost-build.jam;
if ! use userland_Darwin; then
mkdir -p libs/random/build;
cp "${FILESDIR}/random-Jamfile" libs/random/build/Jamfile.v2;
fi
}
strip-flags ()
{
local x y flag NEW_CFLAGS NEW_CXXFLAGS NEW_FFLAGS NEW_FCFLAGS;
setup-allowed-flags;
local NEW_CFLAGS="";
local NEW_CXXFLAGS="";
local NEW_FFLAGS="";
local NEW_FCFLAGS="";
if has ~$(tc-arch) ${ACCEPT_KEYWORDS}; then
ALLOWED_FLAGS="${ALLOWED_FLAGS} ${UNSTABLE_FLAGS}";
fi;
set -f;
for x in ${CFLAGS};
do
for y in ${ALLOWED_FLAGS};
do
flag=${x%%=*};
if [ "${flag%%${y}}" = "" ]; then
NEW_CFLAGS="${NEW_CFLAGS} ${x}";
break;
fi;
done;
done;
for x in ${CXXFLAGS};
do
for y in ${ALLOWED_FLAGS};
do
flag=${x%%=*};
if [ "${flag%%${y}}" = "" ]; then
NEW_CXXFLAGS="${NEW_CXXFLAGS} ${x}";
break;
fi;
done;
done;
for x in ${FFLAGS};
do
for y in ${ALLOWED_FLAGS};
do
flag=${x%%=*};
if [ "${flag%%${y}}" = "" ]; then
NEW_FFLAGS="${NEW_FFLAGS} ${x}";
break;
fi;
done;
done;
for x in ${FCFLAGS};
do
for y in ${ALLOWED_FLAGS};
do
flag=${x%%=*};
if [ "${flag%%${y}}" = "" ]; then
NEW_FCFLAGS="${NEW_FCFLAGS} ${x}";
break;
fi;
done;
done;
if [ "${CFLAGS/-O}" != "${CFLAGS}" -a "${NEW_CFLAGS/-O}" = "${NEW_CFLAGS}" ]; then
NEW_CFLAGS="${NEW_CFLAGS} -O2";
fi;
if [ "${CXXFLAGS/-O}" != "${CXXFLAGS}" -a "${NEW_CXXFLAGS/-O}" = "${NEW_CXXFLAGS}" ]; then
NEW_CXXFLAGS="${NEW_CXXFLAGS} -O2";
fi;
if [ "${FFLAGS/-O}" != "${FFLAGS}" -a "${NEW_FFLAGS/-O}" = "${NEW_FFLAGS}" ]; then
NEW_FFLAGS="${NEW_FFLAGS} -O2";
fi;
if [ "${FCFLAGS/-O}" != "${FCFLAGS}" -a "${NEW_FCFLAGS/-O}" = "${NEW_FCFLAGS}" ]; then
NEW_FCFLAGS="${NEW_FCFLAGS} -O2";
fi;
set +f;
export CFLAGS="${NEW_CFLAGS}";
export CXXFLAGS="${NEW_CXXFLAGS}";
export FFLAGS="${NEW_FFLAGS}";
export FCFLAGS="${NEW_FCFLAGS}";
return 0
}
strip-linguas ()
{
local ls newls nols;
if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then
local op=$1;
shift;
ls=$(find "$1" -name '*.po' -exec basename {} .po ';');
shift;
local d f;
for d in "$@";
do
if [[ ${op} == "-u" ]]; then
newls=${ls};
else
newls="";
fi;
for f in $(find "$d" -name '*.po' -exec basename {} .po ';');
do
if [[ ${op} == "-i" ]]; then
hasq ${f} ${ls} && newls="${newls} ${f}";
else
hasq ${f} ${ls} || newls="${newls} ${f}";
fi;
done;
ls=${newls};
done;
else
ls="$@";
fi;
nols="";
newls="";
for f in ${LINGUAS};
do
if hasq ${f} ${ls}; then
newls="${newls} ${f}";
else
nols="${nols} ${f}";
fi;
done;
[[ -n ${nols} ]] && ewarn "Sorry, but ${PN} does not support the LINGUAS:" ${nols};
export LINGUAS=${newls:1}
}
strip-unsupported-flags ()
{
export CFLAGS=$(test-flags-CC ${CFLAGS});
export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS});
export FFLAGS=$(test-flags-F77 ${FFLAGS});
export FCFLAGS=$(test-flags-FC ${FCFLAGS})
}
tc-arch ()
{
tc-ninja_magic_to_arch portage "$@"
}
tc-arch-kernel ()
{
tc-ninja_magic_to_arch kern "$@"
}
tc-endian ()
{
local host=$1;
[[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
host=${host%%-*};
case ${host} in
alpha*)
echo big
;;
arm*b*)
echo big
;;
arm*)
echo little
;;
cris*)
echo little
;;
hppa*)
echo big
;;
i?86*)
echo little
;;
ia64*)
echo little
;;
m68*)
echo big
;;
mips*l*)
echo little
;;
mips*)
echo big
;;
powerpc*)
echo big
;;
s390*)
echo big
;;
sh*b*)
echo big
;;
sh*)
echo little
;;
sparc*)
echo big
;;
x86_64*)
echo little
;;
*)
echo wtf
;;
esac
}
tc-export ()
{
local var;
for var in "$@";
do
[[ $(type -t tc-get${var}) != "function" ]] && die "tc-export: invalid export variable '${var}'";
eval tc-get${var} > /dev/null;
done
}
tc-getAR ()
{
tc-getPROG AR ar "$@"
}
tc-getAS ()
{
tc-getPROG AS as "$@"
}
tc-getBUILD_CC ()
{
local v;
for v in CC_FOR_BUILD BUILD_CC HOSTCC;
do
if [[ -n ${!v} ]]; then
export BUILD_CC=${!v};
echo "${!v}";
return 0;
fi;
done;
local search=;
if [[ -n ${CBUILD} ]]; then
search=$(type -p ${CBUILD}-gcc);
search=${search##*/};
fi;
search=${search:-gcc};
export BUILD_CC=${search};
echo "${search}"
}
tc-getCC ()
{
tc-getPROG CC gcc "$@"
}
tc-getCPP ()
{
tc-getPROG CPP cpp "$@"
}
tc-getCXX ()
{
tc-getPROG CXX g++ "$@"
}
tc-getF77 ()
{
tc-getPROG F77 f77 "$@"
}
tc-getFC ()
{
tc-getPROG FC gfortran "$@"
}
tc-getGCJ ()
{
tc-getPROG GCJ gcj "$@"
}
tc-getLD ()
{
tc-getPROG LD ld "$@"
}
tc-getNM ()
{
tc-getPROG NM nm "$@"
}
tc-getOBJCOPY ()
{
tc-getPROG OBJCOPY objcopy "$@"
}
tc-getPROG ()
{
local var=$1;
local prog=$2;
if [[ -n ${!var} ]]; then
echo "${!var}";
return 0;
fi;
local search=;
[[ -n $3 ]] && search=$(type -p "$3-${prog}");
[[ -z ${search} && -n ${CHOST} ]] && search=$(type -p "${CHOST}-${prog}");
[[ -n ${search} ]] && prog=${search##*/};
export ${var}=${prog};
echo "${!var}"
}
tc-getRANLIB ()
{
tc-getPROG RANLIB ranlib "$@"
}
tc-getSTRIP ()
{
tc-getPROG STRIP strip "$@"
}
tc-is-cross-compiler ()
{
return $([[ ${CBUILD:-${CHOST}} != ${CHOST} ]])
}
tc-is-softfloat ()
{
case ${CTARGET} in
bfin* | h8300*)
echo "only"
;;
*)
[[ ${CTARGET//_/-} == *-softfloat-* ]] && echo "yes" || echo "no"
;;
esac
}
tc-ninja_magic_to_arch ()
{
function ninj ()
{
[[ ${type} == "kern" ]] && echo $1 || echo $2
};
local type=$1;
local host=$2;
[[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
case ${host} in
alpha*)
echo alpha
;;
arm*)
echo arm
;;
avr*)
ninj avr32 avr
;;
bfin*)
ninj blackfin bfin
;;
cris*)
echo cris
;;
hppa*)
ninj parisc hppa
;;
i?86*)
if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -lt $(KV_to_int 2.6.24) || ${host} == *freebsd* ]]; then
echo i386;
else
echo x86;
fi
;;
ia64*)
echo ia64
;;
m68*)
echo m68k
;;
mips*)
echo mips
;;
nios2*)
echo nios2
;;
nios*)
echo nios
;;
powerpc*)
if [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]] && [[ ${type} == "kern" ]]; then
echo powerpc;
else
if [[ $(KV_to_int ${KV}) -eq $(KV_to_int 2.6.15) ]] && [[ ${type} == "kern" ]]; then
if [[ ${host} == powerpc64* ]] || [[ ${PROFILE_ARCH} == "ppc64" ]]; then
echo powerpc;
else
echo ppc;
fi;
else
if [[ ${host} == powerpc64* ]]; then
echo ppc64;
else
if [[ ${PROFILE_ARCH} == "ppc64" ]]; then
ninj ppc64 ppc;
else
echo ppc;
fi;
fi;
fi;
fi
;;
s390*)
echo s390
;;
sh64*)
ninj sh64 sh
;;
sh*)
echo sh
;;
sparc64*)
ninj sparc64 sparc
;;
sparc*)
[[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc
;;
vax*)
echo vax
;;
x86_64*)
if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.24) ]]; then
echo x86;
else
ninj x86_64 amd64;
fi
;;
*)
echo unknown
;;
esac
}
test-flag-CC ()
{
test-flag-PROG "CC" "$1"
}
test-flag-CXX ()
{
test-flag-PROG "CXX" "$1"
}
test-flag-F77 ()
{
test-flag-PROG "F77" "$1"
}
test-flag-FC ()
{
test-flag-PROG "FC" "$1"
}
test-flag-PROG ()
{
local comp=$1;
local flags="$2";
[[ -z ${comp} || -z ${flags} ]] && return 1;
local PROG=$(tc-get${comp});
${PROG} ${flags} -S -o /dev/null -xc /dev/null > /dev/null 2>&1
}
test-flags ()
{
test-flags-CC "$@"
}
test-flags-CC ()
{
test-flags-PROG "CC" "$@"
}
test-flags-CXX ()
{
test-flags-PROG "CXX" "$@"
}
test-flags-F77 ()
{
test-flags-PROG "F77" "$@"
}
test-flags-FC ()
{
test-flags-PROG "FC" "$@"
}
test-flags-PROG ()
{
local comp=$1;
local flags;
local x;
shift;
[[ -z ${comp} ]] && return 1;
x="";
for x in "$@";
do
test-flag-${comp} "${x}" && flags="${flags}${flags:+ }${x}";
done;
echo "${flags}";
[[ -n ${flags} ]]
}
test_flag ()
{
ewarn "test_flag: deprecated, please use test-flags()!" 1>&2;
test-flags-CC "$@"
}
test_version_info ()
{
if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then
return 0;
else
return 1;
fi
}
treecopy ()
{
dest=${!#};
files_count=$#;
while (( $# > 1 )); do
dirstruct=$(dirname "$1");
mkdir -p "${dest}/${dirstruct}";
cp -pPR "$1" "${dest}/${dirstruct}";
shift;
done
}
unpack_makeself ()
{
local src_input=${1:-${A}};
local src=$(find_unpackable_file "${src_input}");
local skip=$2;
local exe=$3;
[[ -z ${src} ]] && die "Could not locate source for '${src_input}'";
local shrtsrc=$(basename "${src}");
echo ">>> Unpacking ${shrtsrc} to ${PWD}";
if [[ -z ${skip} ]]; then
local ver=$(grep -a '#.*Makeself' "${src}" | awk '{print $NF}');
local skip=0;
exe=tail;
case ${ver} in
1.5.* | 1.6.0-nv)
skip=$(grep -a ^skip= "${src}" | cut -d= -f2)
;;
2.0 | 2.0.1)
skip=$(grep -a ^' 'tail "${src}" | awk '{print $2}' | cut -b2-)
;;
2.1.1)
skip=$(grep -a ^offset= "${src}" | awk '{print $2}' | cut -b2-);
let skip="skip + 1"
;;
2.1.2)
skip=$(grep -a ^offset= "${src}" | awk '{print $3}' | head -n 1);
let skip="skip + 1"
;;
2.1.3)
skip=`grep -a ^offset= "${src}" | awk '{print $3}'`;
let skip="skip + 1"
;;
2.1.4 | 2.1.5)
skip=$(grep -a offset=.*head.*wc "${src}" | awk '{print $3}' | head -n 1);
skip=$(head -n ${skip} "${src}" | wc -c);
exe="dd"
;;
*)
eerror "I'm sorry, but I was unable to support the Makeself file.";
eerror "The version I detected was '${ver}'.";
eerror "Please file a bug about the file ${shrtsrc} at";
eerror "http://bugs.gentoo.org/ so that support can be added.";
die "makeself version '${ver}' not supported"
;;
esac;
debug-print "Detected Makeself version ${ver} ... using ${skip} as offset";
fi;
case ${exe} in
tail)
exe="tail -n +${skip} '${src}'"
;;
dd)
exe="dd ibs=${skip} skip=1 obs=1024 conv=sync if='${src}'"
;;
*)
die "makeself cant handle exe '${exe}'"
;;
esac;
local tmpfile=$(emktemp);
eval ${exe} 2> /dev/null | head -c 512 > "${tmpfile}";
local filetype=$(file -b "${tmpfile}");
case ${filetype} in
*tar\ archive*)
eval ${exe} | tar --no-same-owner -xf -
;;
bzip2*)
eval ${exe} | bzip2 -dc | tar --no-same-owner -xf -
;;
gzip*)
eval ${exe} | tar --no-same-owner -xzf -
;;
compress*)
eval ${exe} | gunzip | tar --no-same-owner -xf -
;;
*)
eerror "Unknown filetype \"${filetype}\" ?";
false
;;
esac;
_pipestatus="${PIPESTATUS[*]}";
[[ "${_pipestatus// /}" -eq 0 ]] || die "failure unpacking (${filetype}) makeself ${shrtsrc} ('${ver}' +${skip})"
}
unpack_pdv ()
{
local src=$(find_unpackable_file "$1");
local sizeoff_t=$2;
[[ -z ${src} ]] && die "Could not locate source for '$1'";
[[ -z ${sizeoff_t} ]] && die "No idea what off_t size was used for this pdv :(";
local shrtsrc=$(basename "${src}");
echo ">>> Unpacking ${shrtsrc} to ${PWD}";
local metaskip=$(tail -c ${sizeoff_t} "${src}" | hexdump -e \"%i\");
local tailskip=$(tail -c $((${sizeoff_t}*2)) "${src}" | head -c ${sizeoff_t} | hexdump -e \"%i\");
local metafile=$(emktemp);
tail -c +$((${metaskip}+1)) "${src}" > "${metafile}";
local datafile=$(tail -c +$((${metaskip}+1)) "${src}" | strings | head -n 1);
datafile=$(basename "${datafile}");
local tmpfile=$(emktemp);
tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c 512 > ${tmpfile};
local iscompressed=$(file -b "${tmpfile}");
if [[ ${iscompressed:0:8} == "compress" ]]; then
iscompressed=1;
mv ${tmpfile}{,.Z};
gunzip ${tmpfile};
else
iscompressed=0;
fi;
local istar=$(file -b "${tmpfile}");
if [[ ${istar:0:9} == "POSIX tar" ]]; then
istar=1;
else
istar=0;
fi;
if [ ${iscompressed} -eq 1 ]; then
if [ ${istar} -eq 1 ]; then
tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar -xzf -;
else
tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | gzip -dc > ${datafile};
fi;
else
if [ ${istar} -eq 1 ]; then
tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar --no-same-owner -xf -;
else
tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) > ${datafile};
fi;
fi;
true
}
validate_desktop_entries ()
{
if [[ -x /usr/bin/desktop-file-validate ]]; then
einfo "Checking desktop entry validity";
local directories="";
for d in /usr/share/applications $@;
do
[[ -d ${D}${d} ]] && directories="${directories} ${D}${d}";
done;
if [[ -n ${directories} ]]; then
for FILE in $(find ${directories} -name "*\.desktop" -not -path '*.hidden*' | sort -u 2>/dev/null);
do
local temp=$(desktop-file-validate ${FILE} | grep -v "warning:" | sed -e "s|error: ||" -e "s|${FILE}:|--|g" );
[[ -n $temp ]] && elog ${temp/--/${FILE/${D}/}:};
done;
fi;
echo "";
else
einfo "Passing desktop entry validity check. Install dev-util/desktop-file-utils, if you want to help to improve Gentoo.";
fi
}
version_compare ()
{
__versionator_shopt_toggle on;
local ver_a=${1} ver_b=${2} parts_a parts_b cur_idx_a=0 cur_idx_b=0;
parts_a=($(get_all_version_components "${ver_a}" ));
parts_b=($(get_all_version_components "${ver_b}" ));
local inf_loop=0;
while true; do
inf_loop=$(( ${inf_loop} + 1 ));
[[ ${inf_loop} -gt 20 ]] && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]";
local cur_tok_a=${parts_a[${cur_idx_a}]};
local cur_tok_b=${parts_b[${cur_idx_b}]};
if [[ -n ${cur_tok_a} ]] && [[ -z ${cur_tok_a//[[:digit:]]} ]]; then
cur_idx_a=$(( ${cur_idx_a} + 1 ));
[[ ${parts_a[${cur_idx_a}]} == "." ]] && cur_idx_a=$(( ${cur_idx_a} + 1 ));
else
cur_tok_a="";
fi;
if [[ -n ${cur_tok_b} ]] && [[ -z ${cur_tok_b//[[:digit:]]} ]]; then
cur_idx_b=$(( ${cur_idx_b} + 1 ));
[[ ${parts_b[${cur_idx_b}]} == "." ]] && cur_idx_b=$(( ${cur_idx_b} + 1 ));
else
cur_tok_b="";
fi;
[[ -z ${cur_tok_a} ]] && [[ -z ${cur_tok_b} ]] && break;
cur_tok_a=${cur_tok_a##+(0)};
cur_tok_b=${cur_tok_b##+(0)};
[[ -z ${cur_tok_a} ]] && cur_tok_a=0;
[[ -z ${cur_tok_b} ]] && cur_tok_b=0;
[[ ${cur_tok_a} -lt ${cur_tok_b} ]] && __versionator_shopt_toggle off && return 1;
[[ ${cur_tok_a} -gt ${cur_tok_b} ]] && __versionator_shopt_toggle off && return 3;
done;
local letter_a=;
letter_a=${parts_a[${cur_idx_a}]};
if [[ ${#letter_a} -eq 1 ]] && [[ -z ${letter_a/[a-z]} ]]; then
cur_idx_a=$(( ${cur_idx_a} + 1 ));
else
letter_a="@";
fi;
local letter_b=;
letter_b=${parts_b[${cur_idx_b}]};
if [[ ${#letter_b} -eq 1 ]] && [[ -z ${letter_b/[a-z]} ]]; then
cur_idx_b=$(( ${cur_idx_b} + 1 ));
else
letter_b="@";
fi;
[[ ${letter_a} < ${letter_b} ]] && __versionator_shopt_toggle off && return 1;
[[ ${letter_a} > ${letter_b} ]] && __versionator_shopt_toggle off && return 3;
local suffix rule part r_lt r_gt;
for rule in "alpha=1" "beta=1" "pre=1" "rc=1" "p=3" "r=3";
do
suffix=${rule%%=*};
r_lt=${rule##*=};
[[ ${r_lt} -eq 1 ]] && r_gt=3 || r_gt=1;
local suffix_a=;
for part in ${parts_a[@]};
do
[[ ${part#${suffix}} != ${part} ]] && [[ -z ${part##${suffix}*([[:digit:]])} ]] && suffix_a=${part#${suffix}}0;
done;
local suffix_b=;
for part in ${parts_b[@]};
do
[[ ${part#${suffix}} != ${part} ]] && [[ -z ${part##${suffix}*([[:digit:]])} ]] && suffix_b=${part#${suffix}}0;
done;
[[ -z ${suffix_a} ]] && [[ -z ${suffix_b} ]] && continue;
[[ -z ${suffix_a} ]] && __versionator_shopt_toggle off && return ${r_gt};
[[ -z ${suffix_b} ]] && __versionator_shopt_toggle off && return ${r_lt};
suffix_a=${suffix_a##+(0)};
suffix_a=${suffix_a:-0};
suffix_b=${suffix_b##+(0)};
suffix_b=${suffix_b:-0};
[[ ${suffix_a} -lt ${suffix_b} ]] && __versionator_shopt_toggle off && return 1;
[[ ${suffix_a} -gt ${suffix_b} ]] && __versionator_shopt_toggle off && return 3;
done;
__versionator_shopt_toggle off;
return 2
}
version_is_at_least ()
{
__versionator_shopt_toggle on;
local want_s="$1" have_s="${2:-${PVR}}" r;
version_compare "${want_s}" "${have_s}";
r=$?;
case $r in
1 | 2)
__versionator_shopt_toggle off;
return 0
;;
3)
__versionator_shopt_toggle off;
return 1
;;
*)
__versionator_shopt_toggle off;
die "versionator compare bug [atleast, ${want_s}, ${have_s}, ${r}]"
;;
esac;
__versionator_shopt_toggle off
}
version_sort ()
{
__versionator_shopt_toggle on;
local items= left=0;
items=($@);
while [[ ${left} -lt ${#items[@]} ]]; do
local lowest_idx=${left};
local idx=$(( ${lowest_idx} + 1 ));
while [[ ${idx} -lt ${#items[@]} ]]; do
version_compare "${items[${lowest_idx}]}" "${items[${idx}]}";
[[ $? -eq 3 ]] && lowest_idx=${idx};
idx=$(( ${idx} + 1 ));
done;
local tmp=${items[${lowest_idx}]};
items[${lowest_idx}]=${items[${left}]};
items[${left}]=${tmp};
left=$(( ${left} + 1 ));
done;
echo ${items[@]};
__versionator_shopt_toggle off
}
declare -x ALSA_CARDS=""
declare -x ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol"
declare -x ANT_HOME="/usr/share/ant"
declare -x APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias"
declare -x ARCH="x86"
declare -x CBUILD="i686-pc-linux-gnu"
declare -x CDEFINE_default="__unix__"
declare -x CFLAGS="-O2 -march=k8 -mmmx -msse -msse2 -m3dnow -pipe"
declare -x CFLAGS_default=""
declare -x CHOST="i686-pc-linux-gnu"
declare -x CHOST_default="i686-pc-linux-gnu"
declare -x CLASSPATH="."
declare -x CROSSCOMPILE_OPTS=""
declare -x CTARGET_default="i686-pc-linux-gnu"
declare -x CVS_RSH="ssh"
declare -x CXXFLAGS="-O2 -march=k8 -mmmx -msse -msse2 -m3dnow -pipe"
declare -x DEFAULT_ABI="default"
declare -x DESTTREE="/usr"
declare -x DIROPTIONS="-m0755"
declare -x EAPI="0"
declare -x ELIBC="glibc"
declare -x EXEOPTIONS="-m0755"
declare -x FEATURES="ccache distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
declare -x GCC_SPECS=""
declare -x GDK_USE_XFT="1"
declare -x GENERATION="2"
declare -x INHERITED="toolchain-funcs portability distutils flag-o-matic python multilib versionator check-reqs alternatives eutils"
declare -x INPUT_DEVICES="evdev keyboard mouse"
declare -x INSDESTTREE=""
declare -x INSOPTIONS="-m0644"
declare -x JAVAC="/etc/java-config-2/current-system-vm/bin/javac"
declare -x JAVA_HOME="/etc/java-config-2/current-system-vm"
declare -x JDK_HOME="/etc/java-config-2/current-system-vm"
declare -x KDE_IS_PRELINKED="1"
declare -x KERNEL="linux"
declare -x KERNEL_ABI="default"
declare -x KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86"
declare -x KV="2.6.28-gentoo-r3"
declare -x LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text"
declare -x LDFLAGS="-Wl,-O1"
declare -x LDFLAGS_default=""
declare -x LIBDIR_default="lib"
declare -x LIBOPTIONS="-m0644"
declare -x LICENSE="freedist Boost-1.0"
declare -x MAKEOPTS="-j2"
declare -x MULTILIB_ABIS="default"
declare -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
declare -x NOCOLOR="no"
declare -x OPENGL_PROFILE="nvidia"
declare -x PKG_CONFIG_PATH="/usr/qt/3/lib/pkgconfig"
declare -x PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png"
declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND"
declare -x PROPERTIES=""
declare -x PROVIDE=""
declare -x PYTHONDONTWRITEBYTECODE="1"
declare -x PYTHON_DONTCOMPILE="1"
declare -x QMAKESPEC="linux-g++"
declare -x QTDIR="/usr/qt/3"
declare -x RESTRICT=""
declare -x S="/var/state/portage/portage/dev-libs/boost-1.34.1-r2/work/boost_1_34_1"
declare -x SANDBOX_DEBUG="0"
declare -x SANDBOX_DENY="/etc/ld.so.preload"
declare -x SANDBOX_PID="27738"
declare -x SANDBOX_PREDICT=":/dev/console:/dev/random:/proc/self/maps:/var/state/portage/portage/dev-libs/boost-1.34.1-r2/homedir:"
declare -x SANDBOX_READ=":/:/dev/shm:/dev/stdin:/var/state/portage:/var/state/portage/ccache:"
declare -x SANDBOX_VERBOSE="1"
declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/pts/:/dev/pty:/dev/shm:/dev/stderr:/dev/stdout:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/state/portage:/var/state/portage/ccache:/var/state/portage/portage/dev-libs/boost-1.34.1-r2/homedir/.bash_history:/var/tmp/:"
declare -x SANE_CONFIG_DIR="/etc/sane.d"
declare -x SLOT="0"
declare -x USB_DEVFS_PATH="/dev/bus/usb"
declare -x USE="elibc_glibc kernel_linux userland_GNU x86"
declare -x USERLAND="GNU"
declare -x VIDEO_CARDS=""
declare -x VMHANDLE="sun-jdk-1.4"
declare -x XDG_DATA_DIRS="/usr/share:/usr/local/share:/usr/kde/3.5/share"
declare -x _E_DOCDESTTREE_=""
declare -x _E_EXEDESTTREE_=""
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [gentoo-user] emerge amazonmp3 fails
2009-03-11 20:30 [gentoo-user] emerge amazonmp3 fails Douglas J Hunley
@ 2009-03-11 22:41 ` Willie Wong
2009-03-12 12:30 ` [gentoo-user] " Douglas J Hunley
0 siblings, 1 reply; 3+ messages in thread
From: Willie Wong @ 2009-03-11 22:41 UTC (permalink / raw
To: gentoo-user
On Wed, Mar 11, 2009 at 04:30:03PM -0400, Penguin Lover Douglas J Hunley squawked:
> When trying to emerge amazonmp3, I'm getting a failure on the 'boost'
> dependency. Any ideas? I believe I've attached everything relevant to the
> build, if not, pls let me know what else is needed.
For future reference, it'd be nice if you trimmed the build log a
little bit.
In any case, you are running K8, and on B.G.O. there are some
suggestions that the stable version of boost does not play well with
newer versions of GCC on 64bit systems. A suggested workaround is to
unmask >=boost 1.36 and install that.
Then again, this is total heresay on my part, so it may very well not
work.
Best of luck,
W
--
"This is a physics circus. Its like, 'Look at all this crazy shit we can do.'"
~DeathMech, Some Student. P-town PHY 205
Sortir en Pantoufles: up 824 days, 21:20
^ permalink raw reply [flat|nested] 3+ messages in thread
* [gentoo-user] Re: emerge amazonmp3 fails
2009-03-11 22:41 ` Willie Wong
@ 2009-03-12 12:30 ` Douglas J Hunley
0 siblings, 0 replies; 3+ messages in thread
From: Douglas J Hunley @ 2009-03-12 12:30 UTC (permalink / raw
To: gentoo-user
On Wednesday 11 March 2009 18:41:58 Willie Wong wrote:
> For future reference, it'd be nice if you trimmed the build log a
> little bit.
Sorry. Duly noted
> In any case, you are running K8, and on B.G.O. there are some
> suggestions that the stable version of boost does not play well with
> newer versions of GCC on 64bit systems. A suggested workaround is to
> unmask >=boost 1.36 and install that.
Hrm, I'll check that out.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-03-12 12:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-11 20:30 [gentoo-user] emerge amazonmp3 fails Douglas J Hunley
2009-03-11 22:41 ` Willie Wong
2009-03-12 12:30 ` [gentoo-user] " Douglas J Hunley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox