aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/boost/Manifest2
-rw-r--r--dev-libs/boost/boost-1.56.0-r2.ebuild415
-rw-r--r--dev-libs/boost/boost-1.57.0-r1.ebuild413
-rw-r--r--dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch29
-rw-r--r--dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch62
-rw-r--r--dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch23
-rw-r--r--dev-libs/boost/files/boost-1.48.0-python_linking.patch24
-rw-r--r--dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch69
-rw-r--r--dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch22
-rw-r--r--dev-libs/boost/files/boost-1.52.0-threads.patch63
-rw-r--r--dev-libs/boost/files/boost-1.55.0-context-x32.patch42
-rw-r--r--dev-libs/boost/files/boost-1.55.0-tools-c98-compat.patch17
-rw-r--r--dev-libs/boost/files/boost-1.55.0-variadic-templates.patch37
-rw-r--r--dev-libs/boost/files/boost-1.56.0-atomic.patch402
-rw-r--r--dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch13
-rw-r--r--dev-libs/boost/files/boost-1.56.0-no-ssl3.patch49
-rw-r--r--dev-libs/boost/metadata.xml41
-rw-r--r--dev-libs/libx86/ChangeLog58
-rw-r--r--dev-libs/libx86/ChangeLog-201586
-rw-r--r--dev-libs/libx86/Manifest8
-rw-r--r--dev-libs/libx86/files/libx86-0.99-ifmask.patch21
-rw-r--r--dev-libs/libx86/files/libx86-1.1-add-pkgconfig.patch50
-rw-r--r--dev-libs/libx86/files/libx86-1.1-makefile.patch28
-rw-r--r--dev-libs/libx86/libx86-1.1-r99.ebuild46
-rw-r--r--dev-libs/libx86/metadata.xml8
-rw-r--r--dev-libs/weston/Manifest5
-rw-r--r--dev-libs/weston/files/README.gentoo9
-rw-r--r--dev-libs/weston/files/weston-1.9.0-make-error-portable.patch62
-rw-r--r--dev-libs/weston/metadata.xml23
-rw-r--r--dev-libs/weston/weston-1.9.0-r99.ebuild148
30 files changed, 2275 insertions, 0 deletions
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
new file mode 100644
index 0000000..d1c2471
--- /dev/null
+++ b/dev-libs/boost/Manifest
@@ -0,0 +1,2 @@
+DIST boost_1_56_0.tar.bz2 94777674 SHA256 134732acaf3a6e7eba85988118d943f0fa6b7f0850f65131fff89823ad30ff1d SHA512 1ce9871c3a2519682538a5f1331938b948123432d99aea0ce026958cbebd25d84019a3a28c452724b9693df98a8d1264bb2d93d2fee508453f8b42836e67481e WHIRLPOOL e9e9bb965816b687141d55bc026e378a56ed577a2bf0bdad61a1736e7f11d1797e0cac0185a1fa25b6c4b9fe1f75cbb0bb73a5ea05e84d59385bb3b17a90fd12
+DIST boost_1_57_0.tar.bz2 60821561 SHA256 910c8c022a33ccec7f088bd65d4f14b466588dda94ba2124e78b8c57db264967 SHA512 61881440fd89644c43c6e3bc6292e9fed75a6d3a76f98654b189d0ed4e1087d77b585884e882270c08bf9f7132b173bfc1fde05848e06aa78ba7f1008d10714d WHIRLPOOL ff092af332434082a774645a5eb42829cdbdac805ef86dccce8988542062901524bd4d5fc890e3a9c01f0a721047501e5d8b13d50ffa5368066c3438dcf719d6
diff --git a/dev-libs/boost/boost-1.56.0-r2.ebuild b/dev-libs/boost/boost-1.56.0-r2.ebuild
new file mode 100644
index 0000000..9fdf956
--- /dev/null
+++ b/dev-libs/boost/boost-1.56.0-r2.ebuild
@@ -0,0 +1,415 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
+
+MY_P="${PN}_$(replace_all_version_separators _)"
+MAJOR_V="$(get_version_component_range 1-2)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="http://www.boost.org/"
+SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
+
+IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
+
+RDEPEND="abi_x86_32? ( !app-emulation/emul-linux-x86-cpplibs[-abi_x86_32(-)] )
+ icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ mpi? ( virtual/mpi[cxx,threads] )
+ python? ( ${PYTHON_DEPS} )
+ app-arch/bzip2[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ !app-admin/eselect-boost"
+DEPEND="${RDEPEND}
+ =dev-util/boost-build-${MAJOR_V}*"
+REQUIRED_USE="
+ mpi? ( threads )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+S="${WORKDIR}/${MY_P}"
+
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
+mpi_needed() {
+ multilib_is_native_abi && use mpi
+}
+
+create_user-config.jam() {
+ local compiler compiler_version compiler_executable
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ compiler_executable="$(tc-getCXX)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ compiler_executable="$(tc-getCXX)"
+ fi
+ local mpi_configuration python_configuration
+
+ if mpi_needed; then
+ mpi_configuration="using mpi ;"
+ fi
+
+ if python_bindings_needed; then
+ # boost expects libpython$(pyver) and doesn't allow overrides
+ # and the build system is so creepy that it's easier just to
+ # provide a symlink (linker's going to use SONAME anyway)
+ # TODO: replace it with proper override one day
+ ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
+
+ if tc-is-cross-compiler; then
+ python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
+ else
+ # note: we need to provide version explicitly because of
+ # a bug in the build system:
+ # https://github.com/boostorg/build/pull/104
+ python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
+ fi
+ fi
+
+ cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
+using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
+${mpi_configuration}
+${python_configuration}
+__EOF__
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}etc/site-config.jam" ]]; then
+ grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
+ (
+ eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
+ die
+ )
+ fi
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${PN}-1.56.0-no-ssl3.patch" \
+ "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
+ "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
+ "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
+ "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
+ "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
+ "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
+ "${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
+ "${FILESDIR}/${PN}-1.55.0-tools-c98-compat.patch" \
+ "${FILESDIR}/${PN}-1.52.0-threads.patch" \
+ "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" \
+ "${FILESDIR}/${PN}-1.55.0-variadic-templates.patch" \
+ "${FILESDIR}/${PN}-1.56.0-atomic.patch"
+
+ # Do not try to build missing 'wave' tool, bug #522682
+ # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
+ sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
+
+ epatch_user
+
+ multilib_copy_sources
+}
+
+ejam() {
+ local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
+ echo b2 ${b2_opts}
+ b2 ${b2_opts}
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ elif [[ ${CHOST} == *-winnt* ]]; then
+ compiler=parity
+ if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
+ compilerVersion=trunk
+ else
+ compilerVersion=$($(tc-getCXX) -v | sed '1q' \
+ | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
+ fi
+ compilerExecutable=$(tc-getCXX)
+ fi
+
+ # bug 298489
+ if use ppc || use ppc64; then
+ [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
+ fi
+
+ # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
+ append-cxxflags -std=gnu++98
+
+ use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
+ use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
+ mpi_needed || OPTIONS+=" --without-mpi"
+ use nls || OPTIONS+=" --without-locale"
+ use context || OPTIONS+=" --without-context --without-coroutine"
+
+ OPTIONS+=" pch=off"
+ OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
+ OPTIONS+=" --layout=system"
+ OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
+
+ [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
+}
+
+multilib_src_compile() {
+ local -x BOOST_ROOT="${BUILD_DIR}"
+ PYTHON_DIRS=""
+ MPI_PYTHON_MODULE=""
+
+ building() {
+ create_user-config.jam
+
+ local PYTHON_OPTIONS
+ if python_bindings_needed; then
+ PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
+ else
+ PYTHON_OPTIONS=" --without-python"
+ fi
+
+ ejam \
+ ${OPTIONS} \
+ ${PYTHON_OPTIONS} \
+ || die "Building of Boost libraries failed"
+
+ if python_bindings_needed; then
+ if [[ -z "${PYTHON_DIRS}" ]]; then
+ PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
+ else
+ if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
+ die "Inconsistent structure of build directories"
+ fi
+ fi
+
+ local dir
+ for dir in ${PYTHON_DIRS}; do
+ mv ${dir} ${dir}-${EPYTHON} \
+ || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
+ done
+
+ if mpi_needed; then
+ if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
+ MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
+ if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
+ die "Multiple mpi.so files found"
+ fi
+ else
+ if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
+ die "Inconsistent structure of build directories"
+ fi
+ fi
+
+ mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
+ || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
+ fi
+ fi
+ }
+ if python_bindings_needed; then
+ python_foreach_impl building
+ else
+ building
+ fi
+
+ if tools_needed; then
+ pushd tools > /dev/null || die
+
+ ejam \
+ ${OPTIONS} \
+ ${PYTHON_OPTIONS} \
+ || die "Building of Boost tools failed"
+ popd > /dev/null || die
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use python; then
+ rm -r "${ED}"/usr/include/boost/python* || die
+ fi
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine || die
+ fi
+
+ if use doc; then
+ find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
+ dohtml \
+ -A pdf,txt,cpp,hpp \
+ *.{htm,html,png,css} \
+ -r doc
+ dohtml -A pdf,txt -r tools
+ insinto /usr/share/doc/${PF}/html
+ doins -r libs
+ doins -r more
+
+ # To avoid broken links
+ insinto /usr/share/doc/${PF}/html
+ doins LICENSE_1_0.txt
+
+ dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+multilib_src_install() {
+ local -x BOOST_ROOT="${BUILD_DIR}"
+ installation() {
+ create_user-config.jam
+
+ local PYTHON_OPTIONS
+ if python_bindings_needed; then
+ local dir
+ for dir in ${PYTHON_DIRS}; do
+ cp -pr ${dir}-${EPYTHON} ${dir} \
+ || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
+ done
+
+ if mpi_needed; then
+ cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
+ || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
+ cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
+ || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
+ fi
+ PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
+ else
+ PYTHON_OPTIONS=" --without-python"
+ fi
+
+ ejam \
+ ${OPTIONS} \
+ ${PYTHON_OPTIONS} \
+ --includedir="${ED}usr/include" \
+ --libdir="${ED}usr/$(get_libdir)" \
+ install || die "Installation of Boost libraries failed"
+
+ if python_bindings_needed; then
+ rm -r ${PYTHON_DIRS} || die
+
+ # Move mpi.so Python module to Python site-packages directory.
+ # https://svn.boost.org/trac/boost/ticket/2838
+ if mpi_needed; then
+ local moddir=$(python_get_sitedir)/boost
+ # moddir already includes eprefix
+ mkdir -p "${D}${moddir}" || die
+ mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
+ cat << EOF > "${D}${moddir}/__init__.py" || die
+import sys
+if sys.platform.startswith('linux'):
+ import DLFCN
+ flags = sys.getdlopenflags()
+ sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
+ from . import mpi
+ sys.setdlopenflags(flags)
+ del DLFCN, flags
+else:
+ from . import mpi
+del sys
+EOF
+ fi
+
+ python_optimize
+ fi
+ }
+ if python_bindings_needed; then
+ python_foreach_impl installation
+ else
+ installation
+ fi
+
+ pushd "${ED}usr/$(get_libdir)" > /dev/null || die
+
+ local ext=$(get_libname)
+ if use threads; then
+ local f
+ for f in *${ext}; do
+ dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
+ done
+ fi
+
+ popd > /dev/null || die
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+pkg_preinst() {
+ # Yai for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
+ [[ -L ${symlink} ]] && rm -f "${symlink}"
+ done
+}
diff --git a/dev-libs/boost/boost-1.57.0-r1.ebuild b/dev-libs/boost/boost-1.57.0-r1.ebuild
new file mode 100644
index 0000000..0fbf234
--- /dev/null
+++ b/dev-libs/boost/boost-1.57.0-r1.ebuild
@@ -0,0 +1,413 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4,3_5} )
+
+inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
+
+MY_P="${PN}_$(replace_all_version_separators _)"
+MAJOR_V="$(get_version_component_range 1-2)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="http://www.boost.org/"
+SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
+
+IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
+
+RDEPEND="abi_x86_32? ( !app-emulation/emul-linux-x86-cpplibs[-abi_x86_32(-)] )
+ icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ mpi? ( virtual/mpi[cxx,threads] )
+ python? ( ${PYTHON_DEPS} )
+ app-arch/bzip2[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ !app-admin/eselect-boost"
+DEPEND="${RDEPEND}
+ =dev-util/boost-build-${MAJOR_V}*"
+REQUIRED_USE="
+ mpi? ( threads )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+S="${WORKDIR}/${MY_P}"
+
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
+mpi_needed() {
+ multilib_is_native_abi && use mpi
+}
+
+create_user-config.jam() {
+ local compiler compiler_version compiler_executable
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ compiler_executable="$(tc-getCXX)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ compiler_executable="$(tc-getCXX)"
+ fi
+ local mpi_configuration python_configuration
+
+ if mpi_needed; then
+ mpi_configuration="using mpi ;"
+ fi
+
+ if python_bindings_needed; then
+ # boost expects libpython$(pyver) and doesn't allow overrides
+ # and the build system is so creepy that it's easier just to
+ # provide a symlink (linker's going to use SONAME anyway)
+ # TODO: replace it with proper override one day
+ ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
+
+ if tc-is-cross-compiler; then
+ python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
+ else
+ # note: we need to provide version explicitly because of
+ # a bug in the build system:
+ # https://github.com/boostorg/build/pull/104
+ python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
+ fi
+ fi
+
+ cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
+using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
+${mpi_configuration}
+${python_configuration}
+__EOF__
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}etc/site-config.jam" ]]; then
+ grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
+ (
+ eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
+ die
+ )
+ fi
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${PN}-1.56.0-no-ssl3.patch" \
+ "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
+ "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
+ "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
+ "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
+ "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
+ "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
+ "${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
+ "${FILESDIR}/${PN}-1.55.0-tools-c98-compat.patch" \
+ "${FILESDIR}/${PN}-1.52.0-threads.patch" \
+ "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
+
+ # Do not try to build missing 'wave' tool, bug #522682
+ # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
+ sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
+
+ epatch_user
+
+ multilib_copy_sources
+}
+
+ejam() {
+ local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
+ echo b2 ${b2_opts}
+ b2 ${b2_opts}
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ elif [[ ${CHOST} == *-winnt* ]]; then
+ compiler=parity
+ if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
+ compilerVersion=trunk
+ else
+ compilerVersion=$($(tc-getCXX) -v | sed '1q' \
+ | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
+ fi
+ compilerExecutable=$(tc-getCXX)
+ fi
+
+ # bug 298489
+ if use ppc || use ppc64; then
+ [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
+ fi
+
+ # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
+ append-cxxflags -std=gnu++98
+
+ use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
+ use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
+ mpi_needed || OPTIONS+=" --without-mpi"
+ use nls || OPTIONS+=" --without-locale"
+ use context || OPTIONS+=" --without-context --without-coroutine"
+
+ OPTIONS+=" pch=off"
+ OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
+ OPTIONS+=" --layout=system"
+ OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
+
+ [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
+}
+
+multilib_src_compile() {
+ local -x BOOST_ROOT="${BUILD_DIR}"
+ PYTHON_DIRS=""
+ MPI_PYTHON_MODULE=""
+
+ building() {
+ create_user-config.jam
+
+ local PYTHON_OPTIONS
+ if python_bindings_needed; then
+ PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
+ else
+ PYTHON_OPTIONS=" --without-python"
+ fi
+
+ ejam \
+ ${OPTIONS} \
+ ${PYTHON_OPTIONS} \
+ || die "Building of Boost libraries failed"
+
+ if python_bindings_needed; then
+ if [[ -z "${PYTHON_DIRS}" ]]; then
+ PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
+ else
+ if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
+ die "Inconsistent structure of build directories"
+ fi
+ fi
+
+ local dir
+ for dir in ${PYTHON_DIRS}; do
+ mv ${dir} ${dir}-${EPYTHON} \
+ || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
+ done
+
+ if mpi_needed; then
+ if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
+ MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
+ if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
+ die "Multiple mpi.so files found"
+ fi
+ else
+ if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
+ die "Inconsistent structure of build directories"
+ fi
+ fi
+
+ mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
+ || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
+ fi
+ fi
+ }
+ if python_bindings_needed; then
+ python_foreach_impl building
+ else
+ building
+ fi
+
+ if tools_needed; then
+ pushd tools > /dev/null || die
+
+ ejam \
+ ${OPTIONS} \
+ ${PYTHON_OPTIONS} \
+ || die "Building of Boost tools failed"
+ popd > /dev/null || die
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use python; then
+ rm -r "${ED}"/usr/include/boost/python* || die
+ fi
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine || die
+ fi
+
+ if use doc; then
+ find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
+ dohtml \
+ -A pdf,txt,cpp,hpp \
+ *.{htm,html,png,css} \
+ -r doc
+ dohtml -A pdf,txt -r tools
+ insinto /usr/share/doc/${PF}/html
+ doins -r libs
+ doins -r more
+
+ # To avoid broken links
+ insinto /usr/share/doc/${PF}/html
+ doins LICENSE_1_0.txt
+
+ dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+multilib_src_install() {
+ local -x BOOST_ROOT="${BUILD_DIR}"
+ installation() {
+ create_user-config.jam
+
+ local PYTHON_OPTIONS
+ if python_bindings_needed; then
+ local dir
+ for dir in ${PYTHON_DIRS}; do
+ cp -pr ${dir}-${EPYTHON} ${dir} \
+ || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
+ done
+
+ if mpi_needed; then
+ cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
+ || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
+ cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
+ || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
+ fi
+ PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
+ else
+ PYTHON_OPTIONS=" --without-python"
+ fi
+
+ ejam \
+ ${OPTIONS} \
+ ${PYTHON_OPTIONS} \
+ --includedir="${ED}usr/include" \
+ --libdir="${ED}usr/$(get_libdir)" \
+ install || die "Installation of Boost libraries failed"
+
+ if python_bindings_needed; then
+ rm -r ${PYTHON_DIRS} || die
+
+ # Move mpi.so Python module to Python site-packages directory.
+ # https://svn.boost.org/trac/boost/ticket/2838
+ if mpi_needed; then
+ local moddir=$(python_get_sitedir)/boost
+ # moddir already includes eprefix
+ mkdir -p "${D}${moddir}" || die
+ mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
+ cat << EOF > "${D}${moddir}/__init__.py" || die
+import sys
+if sys.platform.startswith('linux'):
+ import DLFCN
+ flags = sys.getdlopenflags()
+ sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
+ from . import mpi
+ sys.setdlopenflags(flags)
+ del DLFCN, flags
+else:
+ from . import mpi
+del sys
+EOF
+ fi
+
+ python_optimize
+ fi
+ }
+ if python_bindings_needed; then
+ python_foreach_impl installation
+ else
+ installation
+ fi
+
+ pushd "${ED}usr/$(get_libdir)" > /dev/null || die
+
+ local ext=$(get_libname)
+ if use threads; then
+ local f
+ for f in *${ext}; do
+ dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
+ done
+ fi
+
+ popd > /dev/null || die
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+pkg_preinst() {
+ # Yai for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
+ [[ -L ${symlink} ]] && rm -f "${symlink}"
+ done
+}
diff --git a/dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch b/dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch
new file mode 100644
index 0000000..a902d61
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch
@@ -0,0 +1,29 @@
+--- libs/locale/build/Jamfile.v2
++++ libs/locale/build/Jamfile.v2
+@@ -58,8 +58,8 @@
+
+ if $(ICU_LINK)
+ {
+- ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin <runtime-link>shared ;
+- ICU64_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin64 <runtime-link>shared ;
++ ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <runtime-link>shared ;
++ ICU64_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <runtime-link>shared ;
+ }
+ else
+ {
+@@ -117,7 +117,6 @@
+ <library>icuuc/<link>shared/<runtime-link>shared
+ <library>icudt/<link>shared/<runtime-link>shared
+ <library>icuin/<link>shared/<runtime-link>shared
+- <dll-path>$(ICU_PATH)/bin
+ <runtime-link>shared ;
+
+
+@@ -176,7 +175,6 @@
+ <library>icuuc_64/<link>shared/<runtime-link>shared
+ <library>icudt_64/<link>shared/<runtime-link>shared
+ <library>icuin_64/<link>shared/<runtime-link>shared
+- <dll-path>$(ICU_PATH)/bin64
+ <runtime-link>shared ;
+
+
diff --git a/dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch b/dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch
new file mode 100644
index 0000000..c24a56c
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch
@@ -0,0 +1,62 @@
+--- libs/python/build/Jamfile.v2
++++ libs/python/build/Jamfile.v2
+@@ -39,23 +39,6 @@
+ PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" "_" ] ;
+ }
+
+-
+-rule find-py3-version
+-{
+- local versions = [ feature.values python ] ;
+- local py3ver ;
+- for local v in $(versions)
+- {
+- if $(v) >= 3.0
+- {
+- py3ver = $(v) ;
+- }
+- }
+- return $(py3ver) ;
+-}
+-
+-py3-version = [ find-py3-version ] ;
+-
+ project boost/python
+ : source-location ../src
+ : requirements
+@@ -82,7 +65,7 @@
+ rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
+ rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
+
+-rule lib_boost_python ( is-py3 ? )
++rule lib_boost_python
+ {
+
+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
+@@ -91,7 +74,7 @@
+ {
+ python2 = true ;
+ }
+- lib [ cond $(is-py3) : boost_python3 : boost_python ]
++ lib boost_python
+ : # sources
+ numeric.cpp
+ list.cpp
+@@ -148,7 +131,6 @@
+ <dependency>config-warning
+
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+- [ cond $(is-py3) : <python>$(py3-version) ]
+ : # default build
+ <link>shared
+ : # usage requirements
+@@ -160,9 +142,3 @@
+
+ lib_boost_python ;
+ boost-install boost_python ;
+-
+-if $(py3-version)
+-{
+- lib_boost_python yes ;
+- boost-install boost_python3 ;
+-}
diff --git a/dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch b/dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch
new file mode 100644
index 0000000..89f8109
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch
@@ -0,0 +1,23 @@
+--- libs/python/build/Jamfile.v2
++++ libs/python/build/Jamfile.v2
+@@ -85,6 +85,12 @@
+ rule lib_boost_python ( is-py3 ? )
+ {
+
++ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
++ local python2 ;
++ if $(python_major_version) = 2
++ {
++ python2 = true ;
++ }
+ lib [ cond $(is-py3) : boost_python3 : boost_python ]
+ : # sources
+ numeric.cpp
+@@ -119,6 +125,7 @@
+ : # requirements
+ <link>static:<define>BOOST_PYTHON_STATIC_LIB
+ <define>BOOST_PYTHON_SOURCE
++ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
+
+ # On Windows, all code using Python has to link to the Python
+ # import library.
diff --git a/dev-libs/boost/files/boost-1.48.0-python_linking.patch b/dev-libs/boost/files/boost-1.48.0-python_linking.patch
new file mode 100644
index 0000000..e7f4e7c
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.48.0-python_linking.patch
@@ -0,0 +1,24 @@
+--- libs/python/build/Jamfile.v2
++++ libs/python/build/Jamfile.v2
+@@ -109,20 +109,7 @@
+ <link>static:<define>BOOST_PYTHON_STATIC_LIB
+ <define>BOOST_PYTHON_SOURCE
+ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
+-
+- # On Windows, all code using Python has to link to the Python
+- # import library.
+- #
+- # On *nix we never link libboost_python to libpython. When
+- # extending Python, all Python symbols are provided by the
+- # Python interpreter executable. When embedding Python, the
+- # client executable is expected to explicitly link to
+- # /python//python (the target representing libpython) itself.
+- #
+- # python_for_extensions is a target defined by Boost.Build to
+- # provide the Python include paths, and on Windows, the Python
+- # import library, as usage requirements.
+- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
++ [ cond [ python.configured ] : <library>/python//python ]
+
+ # we prevent building when there is no python available
+ # as it's not possible anyway, and to cause dependents to
diff --git a/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch b/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch
new file mode 100644
index 0000000..327429e
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch
@@ -0,0 +1,69 @@
+https://svn.boost.org/trac/boost/ticket/6286
+
+--- boostcpp.jam
++++ boostcpp.jam
+@@ -99,13 +99,6 @@
+ BUILD_ID = [ regex.replace $(build-id) "[*\\/:.\"\' ]" _ ] ;
+ }
+
+-# Python build id (for Python libraries only).
+-python-id = [ option.get "python-buildid" ] ;
+-if $(python-id)
+-{
+- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
+-}
+-
+
+ ################################################################################
+ #
+--- libs/mpi/build/Jamfile.v2
++++ libs/mpi/build/Jamfile.v2
+@@ -8,6 +8,8 @@
+ # Authors: Douglas Gregor
+ # Andrew Lumsdaine
+
++import option ;
++import regex ;
+ import mpi ;
+ import indirect ;
+ import python ;
+@@ -24,6 +26,13 @@
+ <tag>@$(__name__).tag
+ ;
+
++# Python build id (for Python libraries only).
++python-id = [ option.get "python-buildid" ] ;
++if $(python-id)
++{
++ PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
++}
++
+ rule tag ( name : type ? : property-set )
+ {
+ local result = $(name) ;
+--- libs/python/build/Jamfile.v2
++++ libs/python/build/Jamfile.v2
+@@ -2,6 +2,8 @@
+ # Software License, Version 1.0. (See accompanying
+ # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
++import option ;
++import regex ;
+ import os ;
+ import indirect ;
+ import modules ;
+@@ -30,6 +32,14 @@
+ ;
+ }
+
++# Python build id (for Python libraries only).
++python-id = [ option.get "python-buildid" ] ;
++if $(python-id)
++{
++ PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
++}
++
++
+ rule find-py3-version
+ {
+ local versions = [ feature.values python ] ;
diff --git a/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch b/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch
new file mode 100644
index 0000000..c8dc6e1
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch
@@ -0,0 +1,22 @@
+--- libs/mpi/build/Jamfile.v2
++++ libs/mpi/build/Jamfile.v2
+@@ -30,7 +30,7 @@
+ python-id = [ option.get "python-buildid" ] ;
+ if $(python-id)
+ {
+- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
++ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
+ }
+
+ rule tag ( name : type ? : property-set )
+--- libs/python/build/Jamfile.v2
++++ libs/python/build/Jamfile.v2
+@@ -36,7 +36,7 @@
+ python-id = [ option.get "python-buildid" ] ;
+ if $(python-id)
+ {
+- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
++ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
+ }
+
+
diff --git a/dev-libs/boost/files/boost-1.52.0-threads.patch b/dev-libs/boost/files/boost-1.52.0-threads.patch
new file mode 100644
index 0000000..e078fc2
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.52.0-threads.patch
@@ -0,0 +1,63 @@
+Index: /trunk/boostcpp.jam
+===================================================================
+--- /trunk/boostcpp.jam (revision 79301)
++++ /trunk/boostcpp.jam (revision 81000)
+@@ -210,6 +210,44 @@
+ }
+
++rule filtered-target ( name : message + : sources + : requirements * )
++{
++ message $(name)-message : warning: $(message) ;
++ alias $(name) : $(sources) : $(requirements) ;
++ alias $(name) : $(name)-message ;
++
++ local p = [ project.current ] ;
++ $(p).mark-target-as-explicit $(name) ;
++ $(p).mark-target-as-explicit $(name)-message ;
++}
++
+ rule declare_install_and_stage_proper_targets ( libraries * : headers * )
+ {
++ for local l in $(libraries)
++ {
++ if $(l) = locale
++ {
++ filtered-target $(l)-for-install :
++ Skipping Boost.Locale library with threading=single. :
++ libs/$(l)/build : <threading>multi ;
++ }
++ else if $(l) = wave
++ {
++ filtered-target $(l)-for-install :
++ Skipping Boost.Wave library with threading=single. :
++ libs/$(l)/build : <threading>multi ;
++ }
++ else if $(l) = thread
++ {
++ filtered-target $(l)-for-install :
++ Skipping Boost.Thread library with threading=single. :
++ libs/$(l)/build : <threading>multi ;
++ }
++ else
++ {
++ alias $(l)-for-install : libs/$(l)/build ;
++ }
++ }
++ local library-targets = $(libraries)-for-install ;
++
+ install-requirements = <install-source-root>$(BOOST_ROOT)/boost ;
+
+@@ -239,5 +277,5 @@
+ : $(install-requirements) <install-no-version-symlinks>on
+ :
+- : libs/$(libraries)/build
++ : $(libraries)-for-install
+ : $(headers)
+ ;
+@@ -246,5 +284,5 @@
+ # Install just library.
+ install stage-proper
+- : libs/$(libraries)/build
++ : $(libraries)-for-install
+ : <location>$(stage-locate)/lib
+ <install-dependencies>on <install-type>LIB
diff --git a/dev-libs/boost/files/boost-1.55.0-context-x32.patch b/dev-libs/boost/files/boost-1.55.0-context-x32.patch
new file mode 100644
index 0000000..5bf7406
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.55.0-context-x32.patch
@@ -0,0 +1,42 @@
+https://svn.boost.org/trac/boost/ticket/9445
+
+hack to fix x32 builds
+
+--- a/libs/context/src/asm/jump_i386_sysv_elf_gas.S
++++ b/libs/context/src/asm/jump_i386_sysv_elf_gas.S
+@@ -31,6 +31,10 @@
+ * *
+ * *****************************************************************/
+
++#ifdef __x86_64__
++#include "jump_x86_64_sysv_elf_gas.S"
++#else
++
+ .text
+ .globl jump_fcontext
+ .align 2
+@@ -73,3 +77,5 @@ jump_fcontext:
+
+ /* Mark that we don't need executable stack. */
+ .section .note.GNU-stack,"",%progbits
++
++#endif
+--- a/libs/context/src/asm/make_i386_sysv_elf_gas.S
++++ b/libs/context/src/asm/make_i386_sysv_elf_gas.S
+@@ -31,6 +31,10 @@
+ * *
+ * *****************************************************************/
+
++#ifdef __x86_64__
++#include "make_x86_64_sysv_elf_gas.S"
++#else
++
+ .text
+ .globl make_fcontext
+ .align 2
+@@ -78,3 +82,5 @@ finish:
+
+ /* Mark that we don't need executable stack. */
+ .section .note.GNU-stack,"",%progbits
++
++#endif
diff --git a/dev-libs/boost/files/boost-1.55.0-tools-c98-compat.patch b/dev-libs/boost/files/boost-1.55.0-tools-c98-compat.patch
new file mode 100644
index 0000000..df2a14a
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.55.0-tools-c98-compat.patch
@@ -0,0 +1,17 @@
+Make tools compiled successfully with forced C++98
+
+Gentoo bugreport: https://bugs.gentoo.org/show_bug.cgi?id=503468
+
+diff --git a/tools/regression/src/compiler_status.cpp b/tools/regression/src/compiler_status.cpp
+index 63f8134..3f3374a 100644
+--- a/tools/regression/src/compiler_status.cpp
++++ b/tools/regression/src/compiler_status.cpp
+@@ -128,7 +128,7 @@ namespace
+ string ln(line);
+ if (ln.find("Revision: ") != string::npos)
+ {
+- for(auto itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr)
++ for(string::iterator itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr)
+ rev += *itr;
+ }
+ }
diff --git a/dev-libs/boost/files/boost-1.55.0-variadic-templates.patch b/dev-libs/boost/files/boost-1.55.0-variadic-templates.patch
new file mode 100644
index 0000000..547dbbd
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.55.0-variadic-templates.patch
@@ -0,0 +1,37 @@
+From eec808554936ae068b23df07ab54d4dc6302a695 Mon Sep 17 00:00:00 2001
+From: jzmaddock <jzmaddock@gmail.com>
+Date: Sat, 23 Aug 2014 09:38:02 +0100
+Subject: [PATCH] Fix BOOST_NO_CXX11_VARIADIC_TEMPLATES definition - the
+ feature was introduced in GCC 4.4.
+
+---
+ boost/config/compiler/gcc.hpp | 9 +--------
+ 1 file changed, 1 insertion(+), 8 deletions(-)
+
+diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp
+index f37159d..97d8a18 100644
+--- a/boost/config/compiler/gcc.hpp
++++ b/boost/config/compiler/gcc.hpp
+@@ -154,14 +154,6 @@
+ # define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+ # define BOOST_NO_CXX11_RVALUE_REFERENCES
+ # define BOOST_NO_CXX11_STATIC_ASSERT
+-
+-// Variadic templates compiler:
+-// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
+-# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
+-# define BOOST_HAS_VARIADIC_TMPL
+-# else
+-# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
+-# endif
+ #endif
+
+ // C++0x features in 4.4.n and later
+@@ -176,6 +168,7 @@
+ # define BOOST_NO_CXX11_DELETED_FUNCTIONS
+ # define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
+ # define BOOST_NO_CXX11_INLINE_NAMESPACES
++# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
+ #endif
+
+ #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
diff --git a/dev-libs/boost/files/boost-1.56.0-atomic.patch b/dev-libs/boost/files/boost-1.56.0-atomic.patch
new file mode 100644
index 0000000..6d72418
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.56.0-atomic.patch
@@ -0,0 +1,402 @@
+Fixed in 1.57
+
+commit 415db7054723291042e4ff1ffa8fdd5bc8b07163
+Author: Andrey Semashev <andrey.semashev@gmail.com>
+Date: Sat Sep 27 20:40:09 2014 +0400
+
+ Added support for extending operations to GCC atomic backend.
+
+ Fix for #10446. Some platforms (e.g. Raspberry Pi) only support atomic ops of some particular size but not less. Use extending arithmetic operations for these platforms. Also, make sure bools are always treated as 8-bit values, even if the actual type is larger. This makes its use in atomic<>, atomic_flag and lock pool more consistent.
+
+diff --git a/include/boost/atomic/capabilities.hpp b/include/boost/atomic/capabilities.hpp
+index 658dd22..05bbb0f 100644
+--- a/include/boost/atomic/capabilities.hpp
++++ b/include/boost/atomic/capabilities.hpp
+@@ -142,6 +142,7 @@
+ #define BOOST_ATOMIC_ADDRESS_LOCK_FREE BOOST_ATOMIC_POINTER_LOCK_FREE
+
+ #ifndef BOOST_ATOMIC_BOOL_LOCK_FREE
++// We store bools in 1-byte storage in all backends
+ #define BOOST_ATOMIC_BOOL_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
+ #endif
+
+diff --git a/include/boost/atomic/detail/atomic_template.hpp b/include/boost/atomic/detail/atomic_template.hpp
+index 4fd6d79..bc3922a 100644
+--- a/include/boost/atomic/detail/atomic_template.hpp
++++ b/include/boost/atomic/detail/atomic_template.hpp
+@@ -234,7 +234,7 @@ class base_atomic< bool, int >
+ {
+ private:
+ typedef bool value_type;
+- typedef atomics::detail::operations< storage_size_of< value_type >::value, false > operations;
++ typedef atomics::detail::operations< 1u, false > operations;
+
+ protected:
+ typedef value_type value_arg_type;
+diff --git a/include/boost/atomic/detail/caps_gcc_atomic.hpp b/include/boost/atomic/detail/caps_gcc_atomic.hpp
+index 8299ad0..f4e7a70 100644
+--- a/include/boost/atomic/detail/caps_gcc_atomic.hpp
++++ b/include/boost/atomic/detail/caps_gcc_atomic.hpp
+@@ -29,66 +29,48 @@
+ #define BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B 1
+ #endif
+
+-#if __GCC_ATOMIC_BOOL_LOCK_FREE == 2
+-#define BOOST_ATOMIC_FLAG_LOCK_FREE 2
+-#else
+-#define BOOST_ATOMIC_FLAG_LOCK_FREE 0
+-#endif
+-#if __GCC_ATOMIC_CHAR_LOCK_FREE == 2
+-#define BOOST_ATOMIC_CHAR_LOCK_FREE 2
+-#else
+-#define BOOST_ATOMIC_CHAR_LOCK_FREE 0
+-#endif
+-#if __GCC_ATOMIC_CHAR16_T_LOCK_FREE == 2
+-#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 2
+-#else
+-#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 0
+-#endif
+-#if __GCC_ATOMIC_CHAR32_T_LOCK_FREE == 2
+-#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 2
++#if defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B) && (defined(BOOST_HAS_INT128) || !defined(BOOST_NO_ALIGNMENT))
++#define BOOST_ATOMIC_INT128_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 0
++#define BOOST_ATOMIC_INT128_LOCK_FREE 0
+ #endif
+-#if __GCC_ATOMIC_WCHAR_T_LOCK_FREE == 2
+-#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2
++
++#if __GCC_ATOMIC_LLONG_LOCK_FREE == 2
++#define BOOST_ATOMIC_LLONG_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
++#define BOOST_ATOMIC_LLONG_LOCK_FREE BOOST_ATOMIC_INT128_LOCK_FREE
+ #endif
+-#if __GCC_ATOMIC_SHORT_LOCK_FREE == 2
+-#define BOOST_ATOMIC_SHORT_LOCK_FREE 2
++
++#if __GCC_ATOMIC_LONG_LOCK_FREE == 2
++#define BOOST_ATOMIC_LONG_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_SHORT_LOCK_FREE 0
++#define BOOST_ATOMIC_LONG_LOCK_FREE BOOST_ATOMIC_LLONG_LOCK_FREE
+ #endif
++
+ #if __GCC_ATOMIC_INT_LOCK_FREE == 2
+ #define BOOST_ATOMIC_INT_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_INT_LOCK_FREE 0
+-#endif
+-#if __GCC_ATOMIC_LONG_LOCK_FREE == 2
+-#define BOOST_ATOMIC_LONG_LOCK_FREE 2
+-#else
+-#define BOOST_ATOMIC_LONG_LOCK_FREE 0
++#define BOOST_ATOMIC_INT_LOCK_FREE BOOST_ATOMIC_LONG_LOCK_FREE
+ #endif
+-#if __GCC_ATOMIC_LLONG_LOCK_FREE == 2
+-#define BOOST_ATOMIC_LLONG_LOCK_FREE 2
++
++#if __GCC_ATOMIC_SHORT_LOCK_FREE == 2
++#define BOOST_ATOMIC_SHORT_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_LLONG_LOCK_FREE 0
++#define BOOST_ATOMIC_SHORT_LOCK_FREE BOOST_ATOMIC_INT_LOCK_FREE
+ #endif
+-#if defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B) && (defined(BOOST_HAS_INT128) || !defined(BOOST_NO_ALIGNMENT))
+-#define BOOST_ATOMIC_INT128_LOCK_FREE 2
++
++#if __GCC_ATOMIC_CHAR_LOCK_FREE == 2
++#define BOOST_ATOMIC_CHAR_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_INT128_LOCK_FREE 0
++#define BOOST_ATOMIC_CHAR_LOCK_FREE BOOST_ATOMIC_SHORT_LOCK_FREE
+ #endif
++
+ #if __GCC_ATOMIC_POINTER_LOCK_FREE == 2
+ #define BOOST_ATOMIC_POINTER_LOCK_FREE 2
+ #else
+ #define BOOST_ATOMIC_POINTER_LOCK_FREE 0
+ #endif
+-#if __GCC_ATOMIC_BOOL_LOCK_FREE == 2
+-#define BOOST_ATOMIC_BOOL_LOCK_FREE 2
+-#else
+-#define BOOST_ATOMIC_BOOL_LOCK_FREE 0
+-#endif
++
+
+ #define BOOST_ATOMIC_INT8_LOCK_FREE BOOST_ATOMIC_CHAR_LOCK_FREE
+
+@@ -128,6 +110,24 @@
+ #define BOOST_ATOMIC_INT64_LOCK_FREE 0
+ #endif
+
++
++#if __GCC_ATOMIC_WCHAR_T_LOCK_FREE == 2
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2
++#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
++#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
++#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
++#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
++#else
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
++#endif
++
++#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
++#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
++
+ #define BOOST_ATOMIC_THREAD_FENCE 2
+ #define BOOST_ATOMIC_SIGNAL_FENCE 2
+
+diff --git a/include/boost/atomic/detail/ops_gcc_atomic.hpp b/include/boost/atomic/detail/ops_gcc_atomic.hpp
+index 2297791..2e4c37b 100644
+--- a/include/boost/atomic/detail/ops_gcc_atomic.hpp
++++ b/include/boost/atomic/detail/ops_gcc_atomic.hpp
+@@ -24,6 +24,15 @@
+ #include <boost/atomic/detail/ops_cas_based.hpp>
+ #endif
+
++#if __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE || __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE ||\
++ __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE || __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE ||\
++ __GCC_ATOMIC_CHAR_LOCK_FREE != BOOST_ATOMIC_CHAR_LOCK_FREE || __GCC_ATOMIC_BOOL_LOCK_FREE != BOOST_ATOMIC_BOOL_LOCK_FREE ||\
++ __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE
++// There are platforms where we need to use larger storage types
++#include <boost/atomic/detail/int_sizes.hpp>
++#include <boost/atomic/detail/ops_extending_cas_based.hpp>
++#endif
++
+ #ifdef BOOST_HAS_PRAGMA_ONCE
+ #pragma once
+ #endif
+@@ -154,73 +163,206 @@ struct gcc_atomic_operations
+ }
+ };
+
+-#if BOOST_ATOMIC_INT8_LOCK_FREE > 0
++#if BOOST_ATOMIC_INT128_LOCK_FREE > 0
++#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B)
++
++// Workaround for clang bug: http://llvm.org/bugs/show_bug.cgi?id=19149
++// Clang 3.4 does not implement 128-bit __atomic* intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
+ template< bool Signed >
+-struct operations< 1u, Signed > :
+- public gcc_atomic_operations< typename make_storage_type< 1u, Signed >::type >
++struct operations< 16u, Signed > :
++ public cas_based_operations< gcc_dcas_x86_64< Signed > >
+ {
+ };
++
++#else
++
++template< bool Signed >
++struct operations< 16u, Signed > :
++ public gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >
++{
++};
++
++#endif
+ #endif
+
+-#if BOOST_ATOMIC_INT16_LOCK_FREE > 0
++
++#if BOOST_ATOMIC_INT64_LOCK_FREE > 0
++#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG8B)
++
++// Workaround for clang bug http://llvm.org/bugs/show_bug.cgi?id=19355
+ template< bool Signed >
+-struct operations< 2u, Signed > :
+- public gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >
++struct operations< 8u, Signed > :
++ public cas_based_operations< gcc_dcas_x86< Signed > >
++{
++};
++
++#elif (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 8 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 8 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 8 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 8 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
++
++#define BOOST_ATOMIC_DETAIL_INT64_EXTENDED
++
++template< bool Signed >
++struct operations< 8u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 8u, Signed >
+ {
+ };
++
++#else
++
++template< bool Signed >
++struct operations< 8u, Signed > :
++ public gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >
++{
++};
++
++#endif
+ #endif
+
+ #if BOOST_ATOMIC_INT32_LOCK_FREE > 0
++#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 4 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 4 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 4 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 4 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
++
++#define BOOST_ATOMIC_DETAIL_INT32_EXTENDED
++
++#if !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
++
++template< bool Signed >
++struct operations< 4u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 4u, Signed >
++{
++};
++
++#else // !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
++
++template< bool Signed >
++struct operations< 4u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 4u, Signed >
++{
++};
++
++#endif // !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
++
++#else
++
+ template< bool Signed >
+ struct operations< 4u, Signed > :
+ public gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >
+ {
+ };
++
++#endif
+ #endif
+
+-#if BOOST_ATOMIC_INT64_LOCK_FREE > 0
+-#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG8B)
++#if BOOST_ATOMIC_INT16_LOCK_FREE > 0
++#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 2 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 2 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 2 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 2 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
++
++#define BOOST_ATOMIC_DETAIL_INT16_EXTENDED
++
++#if !defined(BOOST_ATOMIC_DETAIL_INT32_EXTENDED)
+
+-// Workaround for clang bug http://llvm.org/bugs/show_bug.cgi?id=19355
+ template< bool Signed >
+-struct operations< 8u, Signed > :
+- public cas_based_operations< gcc_dcas_x86< Signed > >
++struct operations< 2u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >, 2u, Signed >
++{
++};
++
++#elif !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
++
++template< bool Signed >
++struct operations< 2u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 2u, Signed >
+ {
+ };
+
+ #else
+
+ template< bool Signed >
+-struct operations< 8u, Signed > :
+- public gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >
++struct operations< 2u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 2u, Signed >
++{
++};
++
++#endif
++
++#else
++
++template< bool Signed >
++struct operations< 2u, Signed > :
++ public gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >
+ {
+ };
+
+ #endif
+ #endif
+
+-#if BOOST_ATOMIC_INT128_LOCK_FREE > 0
+-#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B)
++#if BOOST_ATOMIC_INT8_LOCK_FREE > 0
++#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 1 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 1 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 1 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 1 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE) ||\
++ (__GCC_ATOMIC_CHAR_LOCK_FREE != BOOST_ATOMIC_CHAR_LOCK_FREE) ||\
++ (__GCC_ATOMIC_BOOL_LOCK_FREE != BOOST_ATOMIC_BOOL_LOCK_FREE)
++
++#if !defined(BOOST_ATOMIC_DETAIL_INT16_EXTENDED)
+
+-// Workaround for clang bug: http://llvm.org/bugs/show_bug.cgi?id=19149
+-// Clang 3.4 does not implement 128-bit __atomic* intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
+ template< bool Signed >
+-struct operations< 16u, Signed > :
+- public cas_based_operations< gcc_dcas_x86_64< Signed > >
++struct operations< 1u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >, 1u, Signed >
++{
++};
++
++#elif !defined(BOOST_ATOMIC_DETAIL_INT32_EXTENDED)
++
++template< bool Signed >
++struct operations< 1u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >, 1u, Signed >
++{
++};
++
++#elif !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
++
++template< bool Signed >
++struct operations< 1u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 1u, Signed >
+ {
+ };
+
+ #else
+
+ template< bool Signed >
+-struct operations< 16u, Signed > :
+- public gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >
++struct operations< 1u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 1u, Signed >
++{
++};
++
++#endif
++
++#else
++
++template< bool Signed >
++struct operations< 1u, Signed > :
++ public gcc_atomic_operations< typename make_storage_type< 1u, Signed >::type >
+ {
+ };
+
+ #endif
+ #endif
+
++#undef BOOST_ATOMIC_DETAIL_INT16_EXTENDED
++#undef BOOST_ATOMIC_DETAIL_INT32_EXTENDED
++#undef BOOST_ATOMIC_DETAIL_INT64_EXTENDED
++
+ BOOST_FORCEINLINE void thread_fence(memory_order order) BOOST_NOEXCEPT
+ {
+ __atomic_thread_fence(atomics::detail::convert_memory_order_to_gcc(order));
diff --git a/dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch b/dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch
new file mode 100644
index 0000000..5175800
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch
@@ -0,0 +1,13 @@
+Build auto_index tool with USE="tools"
+Gentoo bug report: https://bugs.gentoo.org/show_bug.cgi?id=529066
+
+--- tools/Jamfile.v2.orig 2014-12-24 12:57:32.290880067 +0300
++++ tools/Jamfile.v2 2014-12-24 12:58:38.403883250 +0300
+@@ -20,6 +20,7 @@
+ use-project /boost/regression : regression/build ;
+
+ TOOLS =
++ auto_index/build//auto_index
+ bcp//bcp
+ inspect/build//inspect
+ quickbook//quickbook
diff --git a/dev-libs/boost/files/boost-1.56.0-no-ssl3.patch b/dev-libs/boost/files/boost-1.56.0-no-ssl3.patch
new file mode 100644
index 0000000..d182db7
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.56.0-no-ssl3.patch
@@ -0,0 +1,49 @@
+--- boost/asio/ssl/impl/context.ipp.orig 2014-07-28 06:32:26.000000000 +0000
++++ boost/asio/ssl/impl/context.ipp 2015-12-27 07:01:33.717877523 +0000
+@@ -87,6 +87,14 @@
+ handle_ = ::SSL_CTX_new(::SSLv2_server_method());
+ break;
+ #endif // defined(OPENSSL_NO_SSL2)
++#if defined(OPENSSL_NO_SSL3)
++ case context::sslv3:
++ case context::sslv3_client:
++ case context::sslv3_server:
++ boost::asio::detail::throw_error(
++ boost::asio::error::invalid_argument, "context");
++ break;
++#else // defined(OPENSSL_NO_SSL3)
+ case context::sslv3:
+ handle_ = ::SSL_CTX_new(::SSLv3_method());
+ break;
+@@ -96,6 +104,7 @@
+ case context::sslv3_server:
+ handle_ = ::SSL_CTX_new(::SSLv3_server_method());
+ break;
++#endif // defined(OPENSSL_NO_SSL3)
+ case context::tlsv1:
+ handle_ = ::SSL_CTX_new(::TLSv1_method());
+ break;
+--- boost/asio/ssl/old/detail/openssl_context_service.hpp.orig 2014-07-28 06:32:26.000000000 +0900
++++ boost/asio/ssl/old/detail/openssl_context_service.hpp 2015-12-27 07:03:55.384691141 +0900
+@@ -85,6 +85,13 @@
+ impl = ::SSL_CTX_new(::SSLv2_server_method());
+ break;
+ #endif // defined(OPENSSL_NO_SSL2)
++#if defined(OPENSSL_NO_SSL3)
++ case context_base::sslv3:
++ case context_base::sslv3_client:
++ case context_base::sslv3_server:
++ boost::asio::detail::throw_error(boost::asio::error::invalid_argument);
++ break;
++#else // defined(OPENSSL_NO_SSL3)
+ case context_base::sslv3:
+ impl = ::SSL_CTX_new(::SSLv3_method());
+ break;
+@@ -94,6 +101,7 @@
+ case context_base::sslv3_server:
+ impl = ::SSL_CTX_new(::SSLv3_server_method());
+ break;
++#endif // defined(OPENSSL_NO_SSL3)
+ case context_base::tlsv1:
+ impl = ::SSL_CTX_new(::TLSv1_method());
+ break;
diff --git a/dev-libs/boost/metadata.xml b/dev-libs/boost/metadata.xml
new file mode 100644
index 0000000..6a63ade
--- /dev/null
+++ b/dev-libs/boost/metadata.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cpp</herd>
+ <use>
+ <flag name="context">
+ Build and install the Boost.Context library and all other
+ Boostlibraries that depends on it
+ </flag>
+ <flag name="tools">
+ Build and install the boost tools (bcp, quickbook, inspect,
+ wave)
+ </flag>
+ <flag name="debug" restrict="&lt;dev-libs/boost-1.50.0-r3">
+ Build and install debug versions of the Boost libraries. These
+ libraries are not used by default, and should not be used unless
+ you're developing against Boost.
+ </flag>
+ <flag name="debug" restrict="&gt;dev-libs/boost-1.52.0-r2">
+ Build and install only the debug version of the Boost
+ libraries. Only enable this flag if you're developing against
+ boost.
+ </flag>
+ <flag name="threads">
+ Build multi-thread-compatible libraries instead of
+ single-threaded only.
+ </flag>
+ <flag name="nls">
+ Build libboost_locale. This library requires compatible C
+ library interfaces, which might not be provided by uClibc or
+ other embedded libraries.
+ </flag>
+ <flag name="doc">
+ Install the full API documentation documentation. This takes
+ over 200MB of extra disk space.
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">boost</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-libs/libx86/ChangeLog b/dev-libs/libx86/ChangeLog
new file mode 100644
index 0000000..6fa1825
--- /dev/null
+++ b/dev-libs/libx86/ChangeLog
@@ -0,0 +1,58 @@
+# ChangeLog for dev-libs/libx86
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# (auto-generated from git log)
+
+*libx86-1.1-r3 (09 Aug 2015)
+*libx86-1.1-r2 (09 Aug 2015)
+
+ 09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
+ +files/libx86-0.99-ifmask.patch, +files/libx86-1.1-makefile.patch,
+ +libx86-1.1-r2.ebuild, +libx86-1.1-r3.ebuild, +metadata.xml:
+ proj/gentoo: Initial commit
+
+ This commit represents a new era for Gentoo:
+ Storing the gentoo-x86 tree in Git, as converted from CVS.
+
+ This commit is the start of the NEW history.
+ Any historical data is intended to be grafted onto this point.
+
+ Creation process:
+ 1. Take final CVS checkout snapshot
+ 2. Remove ALL ChangeLog* files
+ 3. Transform all Manifests to thin
+ 4. Remove empty Manifests
+ 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
+ 5.1. Do not touch files with -kb/-ko keyword flags.
+
+ Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+ X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration
+ tests
+ X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this
+ project
+ X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo
+ developer, wrote Git features for the migration
+ X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve
+ cvs2svn
+ X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
+ X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014
+ work in migration
+ X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
+ X-Thanks: All of other Gentoo developers - many ideas and lots of paint on
+ the bikeshed
+
+ 24 Aug 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
+ Use https by default
+
+ Convert all URLs for sites supporting encrypted connections from http to
+ https
+
+ Signed-off-by: Justin Lecher <jlec@gentoo.org>
+
+ 24 Aug 2015; Mike Gilbert <floppym@gentoo.org> metadata.xml:
+ Revert DOCTYPE SYSTEM https changes in metadata.xml
+
+ repoman does not yet accept the https version.
+ This partially reverts eaaface92ee81f30a6ac66fe7acbcc42c00dc450.
+
+ Bug: https://bugs.gentoo.org/552720
+
diff --git a/dev-libs/libx86/ChangeLog-2015 b/dev-libs/libx86/ChangeLog-2015
new file mode 100644
index 0000000..3cf8dc6
--- /dev/null
+++ b/dev-libs/libx86/ChangeLog-2015
@@ -0,0 +1,86 @@
+# ChangeLog for dev-libs/libx86
+# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/libx86/ChangeLog,v 1.22 2013/03/26 11:44:11 ago Exp $
+
+ 26 Mar 2013; Agostino Sarubbo <ago@gentoo.org> libx86-1.1-r3.ebuild:
+ Stable for x86, wrt bug #463036
+
+ 26 Mar 2013; Agostino Sarubbo <ago@gentoo.org> libx86-1.1-r3.ebuild:
+ Stable for amd64, wrt bug #463036
+
+ 11 Feb 2013; Sergey Popov <pinkbyte@gentoo.org> metadata.xml:
+ Assign myself as maintainer
+
+*libx86-1.1-r3 (11 Feb 2013)
+
+ 11 Feb 2013; Sergey Popov <pinkbyte@gentoo.org> +libx86-1.1-r3.ebuild,
+ +files/libx86-1.1-makefile.patch:
+ Revision bump: install static libs optionally, wrt bug #456648
+
+ 10 Feb 2013; Michael Palimaka <kensington@gentoo.org> -libx86-1.1-r1.ebuild:
+ Remove old.
+
+ 10 Feb 2013; Agostino Sarubbo <ago@gentoo.org> libx86-1.1-r2.ebuild:
+ Stable for amd64, wrt bug #456546
+
+ 10 Feb 2013; Agostino Sarubbo <ago@gentoo.org> libx86-1.1-r2.ebuild:
+ Stable for x86, wrt bug #456546
+
+*libx86-1.1-r2 (20 Nov 2012)
+
+ 20 Nov 2012; Agostino Sarubbo <ago@gentoo.org> +libx86-1.1-r2.ebuild:
+ eapi5, respect AR
+
+ 27 Jun 2012; Michael Palimaka <kensington@gentoo.org>
+ -files/libx86-0.99-build.patch, -libx86-0.99.ebuild, -libx86-1.1.ebuild:
+ Remove old.
+
+ 01 Jul 2009; Markus Meier <maekke@gentoo.org> libx86-1.1-r1.ebuild:
+ amd64 stable, bug #267719
+
+ 30 Jun 2009; Christian Faulhammer <fauli@gentoo.org> libx86-1.1-r1.ebuild:
+ stable x86, bug 267719
+
+ 15 Sep 2008; Peter Volkov <pva@gentoo.org> libx86-1.1-r1.ebuild:
+ Use correct compiler, bug #237383, thank Jeroen Roovers for notice.
+
+*libx86-1.1-r1 (10 Sep 2008)
+
+ 10 Sep 2008; Peter Volkov <pva@gentoo.org> +libx86-1.1-r1.ebuild:
+ Respect LDFLAGS, bug #236888, thank Olivier Huber for report and fix.
+
+ 06 Sep 2008; Ulrich Mueller <ulm@gentoo.org>
+ +files/libx86-0.99-ifmask.patch, libx86-0.99.ebuild, libx86-1.1.ebuild:
+ Fix compile failure with linux-headers-2.6.26, bug 235599. Thanks to
+ junki.gnu@gmail.com for the patch.
+
+*libx86-1.1 (06 Sep 2008)
+
+ 06 Sep 2008; Thomas Anderson <gentoofan23@gentoo.org> +libx86-1.1.ebuild:
+ Version bump. This new version is vaccinated of the bug from bug #235599
+
+ 07 Aug 2008; Markus Meier <maekke@gentoo.org> libx86-0.99.ebuild:
+ amd64/x86 stable, bug #231739
+
+ 28 May 2008; Christian Heim <phreak@gentoo.org> metadata.xml:
+ Removing Alon Bar-Lev (alonbl) from metadata.xml (as per #147110). Assigning
+ to maintainer-needed.
+
+ 07 Feb 2008; Robin H. Johnson <robbat2@gentoo.org> metadata.xml:
+ Fix metadata typo.
+
+ 10 Nov 2007; Samuli Suominen <drac@gentoo.org> libx86-0.99.ebuild:
+ Keyword ~amd64 wrt #197687.
+
+ 10 Oct 2007; Alon Bar-Lev <alonbl@gentoo.org>
+ files/libx86-0.99-build.patch, libx86-0.99.ebuild:
+ Fix lib dir, bug#192814, thanks for Pacho Ramos for reporting
+
+ 18 Sep 2007; Alon Bar-Lev <alonbl@gentoo.org> libx86-0.99.ebuild:
+ Add die thanks to vapier
+
+*libx86-0.99 (17 Sep 2007)
+
+ 17 Sep 2007; Alon Bar-Lev <alonbl@gentoo.org>
+ +files/libx86-0.99-build.patch, +metadata.xml, +libx86-0.99.ebuild:
+ Initial add, bug#156431
diff --git a/dev-libs/libx86/Manifest b/dev-libs/libx86/Manifest
new file mode 100644
index 0000000..09ab8df
--- /dev/null
+++ b/dev-libs/libx86/Manifest
@@ -0,0 +1,8 @@
+AUX libx86-0.99-ifmask.patch 584 SHA256 b8070e57c5d267b3736b133e4c3c92965cc5a62e72466b705b506ad2ce39dd25 SHA512 781ea16e535ca1c0a54552b51d67b0901102f20ab63ff5ff39f9f2bb513abb53867eb5e52089e72afa6c313380b2033881f17cfe233b09a38ed5a9e95ad8d5f8 WHIRLPOOL 148e94477662dd91e654972f8ad475808574e006677e3858346c864b580776ec203457d1011f05d984ba82231f8ebdddac46e8f9bd1e1650e831268c7abe0b66
+AUX libx86-1.1-add-pkgconfig.patch 1551 SHA256 de18116436db7e35011f5524071e3abb05e838fc24da4a53e2c1b16fe609ad40 SHA512 77a2eb5d063f2bae279abd4bb45a3a839448201c11eb6b68e59454f25265c450368952fcf8663727e5b7fd16438a4a95456cd44d91dc4748d215c2716529c9a8 WHIRLPOOL ce79d4c8d25c6de08ae7242fce3c89eae76b26d02696892762521475cfb6a564be8953a0fca457688ad168c40c9b68f67089b89d4aedd782f1d2074a5f66f74f
+AUX libx86-1.1-makefile.patch 853 SHA256 ce7c23404e1ba95343418cc0256c7ad2db702b79518e4cda77c802dfbbce306f SHA512 a61e21ab31b1f22d898799ecc3db57e6816146488d436d3d33817f0ac19d420562830411111bacd8ca4c80a446c088fb931ee293522828076d0a1cae6e7ee0a6 WHIRLPOOL 80d8a599a7fa6aa54f3a65076c5642f5281e79eb283215ced4da9e5523f74c21e17a26eb75b8957757b96f71b7f0a3eee5a0098b46099df2ac193c2577853a7e
+DIST libx86-1.1.tar.gz 87428 SHA256 5bf13104cb327472b5cb65643352a9138646becacc06763088d83001d832d048 SHA512 b946555a45405a06fdf00b3e2522fc99dd7c61349c32726221aa60117a8d3da6da4b44188b1ebb208368e12b396f26055437cebcc8a0e6df10c7a006182c9280 WHIRLPOOL 778dae64fb0a21988debb12ca43ca6eed94fc34ab8d0e012aa30914053f57e6817fc7bbec42f6a85a0be4399263c035f981708036804cb756875143f91fe227c
+EBUILD libx86-1.1-r99.ebuild 1202 SHA256 3ada07db37e9464f5f8398036ac67b9d79f809a84c06d5715597121d440959a2 SHA512 b748d14d0b4b8f96f3ea0e187e963fd4bb732855b1bc062a50e8cd27e89b8d6e24da8a4310ffc7e825173b7a84af29ccd4005526d0a81f58d1785ade4310f5d5 WHIRLPOOL ea1d2808e0ec6d2fef97a13b416e66773bf350ccfbc887e180f54251fc801b25c404c82f24590724c9894e09a05c36f96ef325ad04fa9eb3f5c9f66b02016c84
+MISC ChangeLog 2170 SHA256 1703a1bfef5c503620f4014520ec6176fecf886844dbe085a463947624473d4d SHA512 c946edeb94f0918bb6647204b566d27063143910f6d27cfd209531572701de8363db79b00f3256a35c1d973530036f31ee3f6f57606aa21de537cdc84a55c3cb WHIRLPOOL 8039c8abd7586ef194945f09478cb54602ace2bd287ea907a576a4ac0d47331833f5288b0b3ffdbd3d3ceee0ee66ada04b82be4cdaecd37fb50d018f0a8e80d9
+MISC ChangeLog-2015 3104 SHA256 279a3b4a4d63f4703fdea67ac8381e730a82e74c9d5af424528d7b996405544f SHA512 db6c59484fc9d2b9771b1ae94c4b36916a9fe97359eff37682422548ec07575a939fc115516aaf8ba5d9166ec134e94c54f9804cb59abf19a2186e3ca5afa880 WHIRLPOOL 0a0a560262770a20a4634e86ddafcecd198c2e5fd7bcf647785e94d850e1ff88db14a940a0580ce87dcbb3c9bfc0a90bddb9f8f8bdcc2ab95155526fbcc87474
+MISC metadata.xml 233 SHA256 a93cf5c4e554b97b2a48b92f801e3a3d87833cac311db0160a387a757ab7054c SHA512 704c94018edcbc53edcf0a41c2603dd59ea217aa5871f35d4d17f7df26156b8fb0a735d2efb11b74256565db01e6790a833242de39c29a9e46ed8ed96d505334 WHIRLPOOL 57f455cf256b91fb72e642f5a861e7367961775f2ab992b8afc798ff376c9a2bc8860d09f2bc43c870531248484128c966f25a081b7789a31ba9fb4f52b5519c
diff --git a/dev-libs/libx86/files/libx86-0.99-ifmask.patch b/dev-libs/libx86/files/libx86-0.99-ifmask.patch
new file mode 100644
index 0000000..c99eeb8
--- /dev/null
+++ b/dev-libs/libx86/files/libx86-0.99-ifmask.patch
@@ -0,0 +1,21 @@
+--- lrmi.c.orig 2008-09-06 12:24:36.070136428 +0200
++++ lrmi.c 2008-09-06 12:28:10.584287458 +0200
+@@ -55,6 +55,18 @@ OTHER DEALINGS IN THE SOFTWARE.
+ #include "x86-common.h"
+
+ #if defined(__linux__)
++#ifndef TF_MASK
++#define TF_MASK X86_EFLAGS_TF
++#endif
++#ifndef IF_MASK
++#define IF_MASK X86_EFLAGS_IF
++#endif
++#ifndef IOPL_MASK
++#define IOPL_MASK X86_EFLAGS_IOPL
++#endif
++#ifndef VIF_MASK
++#define VIF_MASK X86_EFLAGS_VIF
++#endif
+ #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
+ #elif defined(__NetBSD__) || defined(__FreeBSD__)
+ #define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL)
diff --git a/dev-libs/libx86/files/libx86-1.1-add-pkgconfig.patch b/dev-libs/libx86/files/libx86-1.1-add-pkgconfig.patch
new file mode 100644
index 0000000..3490c7f
--- /dev/null
+++ b/dev-libs/libx86/files/libx86-1.1-add-pkgconfig.patch
@@ -0,0 +1,50 @@
+diff -Naur libx86-1.1.orig/Makefile libx86-1.1/Makefile
+--- libx86-1.1.orig/Makefile 2016-01-16 15:58:32.764389859 +0000
++++ libx86-1.1/Makefile 2016-01-16 16:02:34.461849053 +0000
+@@ -1,6 +1,7 @@
+ OBJECTS = x86-common.o
+ CFLAGS ?= -O2 -Wall -DDEBUG -g
+ LIBDIR ?= /usr/lib
++INCLUDEDIR ?= /usr/include
+
+ ifeq ($(BACKEND),x86emu)
+ OBJECTS += thunk.o x86emu/decode.o x86emu/debug.o x86emu/fpu.o \
+@@ -29,7 +30,14 @@
+ rm -f *.o *~
+
+ clean: objclean
+- rm -f *.so.1 *.a
++ rm -f *.so.1 *.a x86.pc
++
++x86.pc:
++ sed -e's,@prefix@,/usr,' x86.pc.in > x86.pc
++ sed -e's,@exec_prefix@,/usr,' -i x86.pc
++ sed -e's,@libdir@,${LIBDIR},' -i x86.pc
++ sed -e's,@includedir@,${INCLUDEDIR},' -i x86.pc
++ sed -e's,@PACKAGE_VERSION@,1.1,' -i x86.pc
+
+ install-shared: libx86.so.1
+ install -D libx86.so.1 $(DESTDIR)$(LIBDIR)/libx86.so.1
+@@ -41,4 +49,7 @@
+ install-static:
+ install -D libx86.a $(DESTDIR)$(LIBDIR)/libx86.a
+
+-install: install-shared install-static install-header
++install-pkgconfig: x86.pc
++ install -D x86.pc $(DESTDIR)$(LIBDIR)/pkgconfig/x86.pc
++
++install: install-shared install-static install-header install-pkgconfig
+diff -Naur libx86-1.1.orig/x86.pc.in libx86-1.1/x86.pc.in
+--- libx86-1.1.orig/x86.pc.in 1970-01-01 00:00:00.000000000 +0000
++++ libx86-1.1/x86.pc.in 2016-01-16 15:59:27.171393640 +0000
+@@ -0,0 +1,10 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: x86
++Description: Library providing x86 emulator access
++Version: @PACKAGE_VERSION@
++Cflags: -I${includedir}
++Libs: -L${libdir} -lx86
diff --git a/dev-libs/libx86/files/libx86-1.1-makefile.patch b/dev-libs/libx86/files/libx86-1.1-makefile.patch
new file mode 100644
index 0000000..471c3fb
--- /dev/null
+++ b/dev-libs/libx86/files/libx86-1.1-makefile.patch
@@ -0,0 +1,28 @@
+--- Makefile.orig 2013-02-11 16:35:56.834368910 +0400
++++ Makefile 2013-02-11 16:36:02.587369368 +0400
+@@ -22,7 +22,7 @@
+ $(AR) cru libx86.a $(OBJECTS)
+
+ shared: $(OBJECTS)
+- $(CC) $(CFLAGS) -o libx86.so.1 -shared -Wl,-soname,libx86.so.1 $(OBJECTS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o libx86.so.1 -shared -Wl,-soname,libx86.so.1 $(OBJECTS)
+
+ objclean:
+ $(MAKE) -C x86emu clean
+@@ -31,8 +31,14 @@
+ clean: objclean
+ rm -f *.so.1 *.a
+
+-install: libx86.so.1
++install-shared: libx86.so.1
+ install -D libx86.so.1 $(DESTDIR)$(LIBDIR)/libx86.so.1
+- install -D libx86.a $(DESTDIR)$(LIBDIR)/libx86.a
+ ln -sf libx86.so.1 $(DESTDIR)$(LIBDIR)/libx86.so
++
++install-header:
+ install -p -m 0644 -D lrmi.h $(DESTDIR)/usr/include/libx86.h
++
++install-static:
++ install -D libx86.a $(DESTDIR)$(LIBDIR)/libx86.a
++
++install: install-shared install-static install-header
diff --git a/dev-libs/libx86/libx86-1.1-r99.ebuild b/dev-libs/libx86/libx86-1.1-r99.ebuild
new file mode 100644
index 0000000..474bce3
--- /dev/null
+++ b/dev-libs/libx86/libx86-1.1-r99.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib toolchain-funcs
+
+DESCRIPTION="A hardware-independent library for executing real-mode x86 code"
+HOMEPAGE="http://www.codon.org.uk/~mjg59/libx86"
+SRC_URI="http://www.codon.org.uk/~mjg59/${PN}/downloads/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="static-libs"
+
+src_prepare() {
+ # fix compile failure with linux-headers-2.6.26, bug 235599
+ epatch "${FILESDIR}"/${PN}-0.99-ifmask.patch
+ # Patch for bugs #236888 and #456648
+ epatch "${FILESDIR}"/${P}-makefile.patch
+ # Add support for pkgconfig (enables newer versions of vbetool to link against this)
+ epatch "${FILESDIR}"/${P}-add-pkgconfig.patch
+
+ tc-export CC AR
+}
+
+src_compile() {
+ local ARGS
+ use amd64 && ARGS="BACKEND=x86emu"
+ emake ${ARGS} LIBRARY=shared shared
+ if use static-libs; then
+ emake ${ARGS} objclean
+ emake ${ARGS} LIBRARY=static static
+ fi
+}
+
+src_install() {
+ local install_static;
+ use static-libs && install_static='install-static'
+ emake \
+ LIBDIR="/usr/$(get_libdir)" \
+ DESTDIR="${D}" \
+ install-header install-shared install-pkgconfig ${install_static}
+}
diff --git a/dev-libs/libx86/metadata.xml b/dev-libs/libx86/metadata.xml
new file mode 100644
index 0000000..b6b8956
--- /dev/null
+++ b/dev-libs/libx86/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-libs/weston/Manifest b/dev-libs/weston/Manifest
new file mode 100644
index 0000000..089b6af
--- /dev/null
+++ b/dev-libs/weston/Manifest
@@ -0,0 +1,5 @@
+AUX README.gentoo 383 SHA256 ded85eb05b14162aceb7ba67e49be207bbe15591fa519743478618def88cee85 SHA512 e4d8f8e0edeb6773dd7ef6329074d1e40b694b9e7e10b6a429d8c5dd4fe1170594f447a42eb41446ec2355829a1da1606bf6c544434551c5c931b0794422e786 WHIRLPOOL 8bc2485d91a399eb9d283ec3363546852be9a1a3e69214b3c7cc9a6427c4e10355dc8732de0d8b688f9df8a4bc03df25c3ce7b33c19773b7a47616c93f82bd81
+AUX weston-1.9.0-make-error-portable.patch 1846 SHA256 7260f4c22e3af7b55bb314e68d99c5bed9c20c5f28c9528a8d76816a3bf379f6 SHA512 9116bdf0f93886cfdef97597a8260f7e724a7695c379ddcb81ec1f3c10f8570394a10de830ed2295080b153518e6d4c8d1ddc4ed60d470b2115336155c9e88ff WHIRLPOOL 94791922d22246868ed64b5f5b494c42fb38d441ab14020313d3072a3454140aea08e30fd0cc2a6d12b928d21ab81c10ac4afdcf39c94b00f5f98a130c6090b8
+DIST weston-1.9.0.tar.xz 1238240 SHA256 9c1b03f3184fa0b0dfdf67e215048085156e1a2ca344af6613fed36794ac48cf SHA512 9bcbb5971b8a55d9e10aacf0aae868ff03750a98daee5233dcbff5698ed84e41c4b147fa1fdb1e2be916e3b1e13f259e0eec62354517d6e2a7e1d301a8522f66 WHIRLPOOL 3329a1783da2c7509fb93a64343b6b70f6d45de614a15e17d3a2a2439b440298e25c3dd4504042de38e501877cf47d909849fd6263b081c6ccc0bf8e1362287b
+EBUILD weston-1.9.0-r99.ebuild 3259 SHA256 66d6ff785f2467ac8f889861602467d057f346abbcf0c8f24520029902b37840 SHA512 190d3a3e654d961e5c83d5a1953f747158799d7ae6e6d7f46508772173d661ead9643061d6862f54a644ab0fb86c5e82d43acee80b7dbc8f2cfaf7ca4b932fd2 WHIRLPOOL 03673b306b5ca3f5002a280c28233f2d80418cf876b09d5484ced196411e8e61aad4bc7c2a73bfdae6908e7b10f3afc8eae0185ed28b704774bb1dbdacafce74
+MISC metadata.xml 1257 SHA256 30a5608ab189260222d32fa240fd3791b3e17a471e29e7a2e4a04466b21dfb29 SHA512 b95bd15b66265e1cbe25eee8c70a405dd5df9cc789d60968c9cae3ead3dc35a1a542a432ccf7e8be8c37ac23aa677a5383704e0822c77151f0fcaa101b3a57b3 WHIRLPOOL e53b1747e2e014af1e179c8fa6b8f77aa1dd2db43aec27e433561faa5c93700e57247c4bc06c74baa75f454672410dbf3b0e7d0375b9e7c620d6990ed5e42055
diff --git a/dev-libs/weston/files/README.gentoo b/dev-libs/weston/files/README.gentoo
new file mode 100644
index 0000000..ed8c5c3
--- /dev/null
+++ b/dev-libs/weston/files/README.gentoo
@@ -0,0 +1,9 @@
+For running Weston you need to have $XDG_RUNTIME_DIR in your environment,
+directory must exist and have correct permissions. If you are not using systemd,
+it will not be created automatically, you can create it using your shell,
+add these lines to ~/.bash_profile:
+
+# wayland
+export XDG_RUNTIME_DIR=/tmp/.runtime-${USER}
+mkdir -p "${XDG_RUNTIME_DIR}"
+chmod 0700 "${XDG_RUNTIME_DIR}"
diff --git a/dev-libs/weston/files/weston-1.9.0-make-error-portable.patch b/dev-libs/weston/files/weston-1.9.0-make-error-portable.patch
new file mode 100644
index 0000000..508ddbd
--- /dev/null
+++ b/dev-libs/weston/files/weston-1.9.0-make-error-portable.patch
@@ -0,0 +1,62 @@
+# Eliminate calls to error()/error.h, which are GNU extensions, not POSIX in order to compile with musl
+# See https://patchwork.freedesktop.org/patch/50793/
+
+diff -Naur weston-1.9.0.orig/configure.ac weston-1.9.0/configure.ac
+--- weston-1.9.0.orig/configure.ac 2015-09-22 01:11:26.000000000 +0000
++++ weston-1.9.0/configure.ac 2016-01-01 21:20:54.097472570 +0000
+@@ -57,6 +57,8 @@
+ [[#include <time.h>]])
+ AC_CHECK_HEADERS([execinfo.h])
+
++AC_CHECK_HEADERS([error.h])
++
+ AC_CHECK_FUNCS([mkostemp strchrnul initgroups posix_fallocate])
+
+ COMPOSITOR_MODULES="wayland-server >= 1.9.0 pixman-1 >= 0.25.2"
+diff -Naur weston-1.9.0.orig/src/weston-error.h weston-1.9.0/src/weston-error.h
+--- weston-1.9.0.orig/src/weston-error.h 1970-01-01 00:00:00.000000000 +0000
++++ weston-1.9.0/src/weston-error.h 2016-01-01 21:20:54.097472570 +0000
+@@ -0,0 +1,24 @@
++/* TODO
++ If S is zero error() will not exit so this macro should call warnx() in those cases
++ or just add a plain replacement function for error() to weston-launch.c */
++
++#ifndef WESTON_ERROR_H
++#define WESTON_ERROR_H
++
++#if HAVE_ERROR_H
++#include <error.h>
++#else
++#include <err.h>
++#include <string.h>
++#define weston_error(s, e, f, ...) do { \
++ if (e) \
++ errx((s), (f), ##__VA_ARGS__, strerror(e)); \
++ else \
++ errx((s), (f), ##__VA_ARGS__); \
++} while(0)
++
++#define error weston_error
++#endif
++
++#endif
++
+diff -Naur weston-1.9.0.orig/src/weston-launch.c weston-1.9.0/src/weston-launch.c
+--- weston-1.9.0.orig/src/weston-launch.c 2015-08-10 22:28:46.000000000 +0000
++++ weston-1.9.0/src/weston-launch.c 2016-01-01 21:20:54.098472589 +0000
+@@ -33,7 +33,6 @@
+ #include <poll.h>
+ #include <errno.h>
+
+-#include <error.h>
+ #include <getopt.h>
+
+ #include <sys/types.h>
+@@ -59,6 +58,7 @@
+ #endif
+
+ #include "weston-launch.h"
++#include "weston-error.h"
+
+ #define DRM_MAJOR 226
+
diff --git a/dev-libs/weston/metadata.xml b/dev-libs/weston/metadata.xml
new file mode 100644
index 0000000..56eac98
--- /dev/null
+++ b/dev-libs/weston/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>x11</herd>
+<use>
+ <flag name='colord'>Allow setting color managment</flag>
+ <flag name='drm'>Enable drm compositor support</flag>
+ <flag name='editor'>Install wayland-editor example application</flag>
+ <flag name='egl'>Enable egl acceleration</flag>
+ <flag name='fbdev'>Enable fbdev compositor support</flag>
+ <flag name='gles2'>Use GLESv2 cairo instead of full GL</flag>
+ <flag name='headless'>Headless backend and a noop renderer, mainly for testing purposes</flag>
+ <flag name='ivi'>Enable the IVI shell</flag>
+ <flag name='launch'>Install weston-launch utility</flag>
+ <flag name='rdp'>Enable Remote Desktop Protocol compositor support</flag>
+ <flag name='resize-optimization'>Increase performance, allocate more RAM. Recommended to disable on Raspberry Pi</flag>
+ <flag name='rpi'>Raspberry Pi GPU support</flag>
+ <flag name='screen-sharing'>Enable screen-sharing through RDP</flag>
+ <flag name='unwind'>Enable libunwind usage for backtraces</flag>
+ <flag name='wayland-compositor'>Enable Wayland compositor support</flag>
+ <flag name='xwayland'>Enable ability support native X11 applications</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-libs/weston/weston-1.9.0-r99.ebuild b/dev-libs/weston/weston-1.9.0-r99.ebuild
new file mode 100644
index 0000000..caf87e3
--- /dev/null
+++ b/dev-libs/weston/weston-1.9.0-r99.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="git://anongit.freedesktop.org/git/wayland/${PN}"
+ GIT_ECLASS="git-r3"
+ EXPERIMENTAL="true"
+fi
+VIRTUALX_REQUIRED="test"
+RESTRICT="test"
+
+inherit autotools pax-utils readme.gentoo toolchain-funcs virtualx $GIT_ECLASS
+
+DESCRIPTION="Wayland reference compositor"
+HOMEPAGE="http://wayland.freedesktop.org/"
+
+if [[ $PV = 9999* ]]; then
+ SRC_URI="${SRC_PATCHES}"
+ KEYWORDS="arm"
+else
+ SRC_URI="http://wayland.freedesktop.org/releases/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86 ~arm-linux"
+fi
+
+LICENSE="MIT CC-BY-SA-3.0"
+SLOT="0"
+IUSE="colord dbus +drm editor examples fbdev +gles2 headless ivi rdp +resize-optimization rpi +launch screen-sharing static-libs +suid systemd test unwind wayland-compositor +X xwayland"
+
+REQUIRED_USE="
+ drm? ( gles2 )
+ screen-sharing? ( rdp )
+ test? ( X )
+ wayland-compositor? ( gles2 )
+"
+
+RDEPEND="
+ >=dev-libs/libinput-0.8.0
+ >=dev-libs/wayland-1.9.0
+ media-libs/lcms:2
+ media-libs/libpng:0=
+ media-libs/libwebp:0=
+ virtual/jpeg:0=
+ >=x11-libs/cairo-1.11.3
+ >=x11-libs/libdrm-2.4.30
+ x11-libs/libxkbcommon
+ x11-libs/pixman
+ x11-misc/xkeyboard-config
+ fbdev? (
+ >=sys-libs/mtdev-1.1.0
+ >=virtual/udev-136
+ )
+ colord? ( >=x11-misc/colord-0.1.27 )
+ dbus? ( sys-apps/dbus )
+ drm? (
+ media-libs/mesa[gbm]
+ >=sys-libs/mtdev-1.1.0
+ >=virtual/udev-136
+ )
+ editor? ( x11-libs/pango )
+ gles2? (
+ media-libs/mesa[gles2,wayland]
+ )
+ rdp? ( >=net-misc/freerdp-1.1.0_beta1_p20130710 )
+ rpi? (
+ >=sys-libs/mtdev-1.1.0
+ >=virtual/udev-136
+ )
+ systemd? (
+ sys-auth/pambase[systemd]
+ sys-apps/systemd[pam]
+ )
+ launch? ( sys-auth/pambase )
+ unwind? ( sys-libs/libunwind )
+ X? (
+ x11-libs/libxcb
+ x11-libs/libX11
+ )
+ xwayland? (
+ x11-base/xorg-server[wayland]
+ x11-libs/cairo[xcb]
+ x11-libs/libxcb
+ x11-libs/libXcursor
+ )
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.9.0-make-error-portable.patch
+
+ if [[ ${PV} = 9999* ]]; then
+ eautoreconf
+ fi
+}
+
+src_configure() {
+ local myconf
+ if use examples || use test; then
+ myconf="--enable-simple-clients"
+ else
+ myconf="--disable-simple-clients"
+ fi
+
+ myconf+=" --with-cairo=image --disable-simple-egl-clients"
+
+ econf \
+ $(use_enable examples demo-clients-install) \
+ $(use_enable fbdev fbdev-compositor) \
+ $(use_enable dbus) \
+ $(use_enable drm drm-compositor) \
+ $(use_enable headless headless-compositor) \
+ $(use_enable ivi ivi-shell) \
+ $(use_enable rdp rdp-compositor) \
+ $(use_enable rpi rpi-compositor) \
+ $(use_enable wayland-compositor) \
+ $(use_enable X x11-compositor) \
+ $(use_enable launch weston-launch) \
+ $(use_enable colord) \
+ $(use_enable gles2 egl) \
+ $(use_enable unwind libunwind) \
+ $(use_enable resize-optimization) \
+ $(use_enable screen-sharing) \
+ $(use_enable suid setuid-install) \
+ $(use_enable xwayland) \
+ $(use_enable xwayland xwayland-test) \
+ ${myconf}
+}
+
+src_test() {
+ export XDG_RUNTIME_DIR="${T}/runtime-dir"
+ mkdir "${XDG_RUNTIME_DIR}" || die
+ chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+ cd "${BUILD_DIR}" || die
+ Xemake check
+}
+
+src_install() {
+ pax-mark -m "${ED}"/usr/bin/weston
+
+ default
+
+ readme.gentoo_src_install
+}