From b0fd0bc5c186e99078ed8d07146e8c14f1089639 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 24 Jan 2024 16:45:44 +0000 Subject: gentoo auto-resync : 24:01:2024 - 16:45:44 --- dev-libs/Manifest.gz | Bin 97670 -> 97672 bytes dev-libs/boost/Manifest | 2 +- dev-libs/boost/boost-1.84.0-r1.ebuild | 361 --------------------- dev-libs/boost/boost-1.84.0-r2.ebuild | 360 ++++++++++++++++++++ dev-libs/libcdio/Manifest | 2 +- dev-libs/libcdio/libcdio-2.1.0-r1.ebuild | 10 +- dev-libs/oneDNN/Manifest | 3 +- .../files/oneDNN-3.3.3-include-cstdint.patch | 13 + dev-libs/oneDNN/oneDNN-3.3.3.ebuild | 4 + 9 files changed, 387 insertions(+), 368 deletions(-) delete mode 100644 dev-libs/boost/boost-1.84.0-r1.ebuild create mode 100644 dev-libs/boost/boost-1.84.0-r2.ebuild create mode 100644 dev-libs/oneDNN/files/oneDNN-3.3.3-include-cstdint.patch (limited to 'dev-libs') diff --git a/dev-libs/Manifest.gz b/dev-libs/Manifest.gz index ae3f9f630302..91309097fbcc 100644 Binary files a/dev-libs/Manifest.gz and b/dev-libs/Manifest.gz differ diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest index b2ea14d85546..c17a06acf250 100644 --- a/dev-libs/boost/Manifest +++ b/dev-libs/boost/Manifest @@ -16,5 +16,5 @@ EBUILD boost-1.82.0-r1.ebuild 11360 BLAKE2B 0b42b206ee6dd64ea8fbcb48b717f91b4a71 EBUILD boost-1.83.0-r1.ebuild 11579 BLAKE2B 4dc543767181261fd3777c48524c99e215e354bfd5627a789282b7afbdee7510a9bc01fa3879b785fe9137090b7b9608c5ffa65648eced500dd86a209233cd32 SHA512 d24e18961775931cb8de8875004ba02ec86923ce511e282176c1c15758dac0d20b45300ccd9e9d5a5aff0ae16d618517a2df5c04f3682f588e4c6fd8cc84eab0 EBUILD boost-1.83.0-r2.ebuild 11627 BLAKE2B 2bc11d9a44247459daf262343d332ce15d3e4f6d1cfd3f613cdc2bc6f9f10c95df0441ed90ad134e3f50a45599c3b65869a94ffd62d481d4494e8f6ac9603286 SHA512 fc246d5b54fa4f08a588608322373fa2f3895ff74f4cbe2dbc02b8841fc2296cfb8534d5ba07bf889ec37abdb634faf40f52fd07364d561d7580c76921189119 EBUILD boost-1.83.0-r3.ebuild 11672 BLAKE2B b7a30aa91c971072ef7e8a95c384a865aeedbbe7fedc1d7f7a3fefca8fccccf5be6b56d68de7fc75a639279eb83c752b6c828e9ba98b4d27fffe7f62124efa08 SHA512 0e7006907408ecb70e8331883331c6d75a2676e5b2298af4b1eda29dccc76b38ecb1e307a1168deac258e5761a4df37ef775ca5be994d9c4b48739377206ebcf -EBUILD boost-1.84.0-r1.ebuild 11739 BLAKE2B 82e03a9b5c3938b2dc2c9cf14b590438b1b1e1d36fa1736fd98c9760b92fe5d2722390eaabd17a82707501fe54cde3068d38bb3d44fc30ac3e1319bb6c12778c SHA512 84b3858bc3b72fdd3563c408193d50b31f23c4e8eb271c11f8790081315b346dac8339c9ed1e6f2bc3973ddfcb4e21b0bc5eb7adf81dc395b17e2bc793904de0 +EBUILD boost-1.84.0-r2.ebuild 11676 BLAKE2B 1388d8c6efdf5df4d74571dcf0ff1fd7a7ec4101e44700bad618d41d1469c932e50e7ced1769f0c3af95becd3762e3b5e31885c62610c633640a0beeda882973 SHA512 521fb7fcffa13997195f57e9540fa4f33ddfbe84bbac2f78e1e53539e52f135e1ae18f0035761991305830934122d0c3e19275597e7cfe57b63fdc24b28d8b1b MISC metadata.xml 9162 BLAKE2B c8df087c7fe1e4af3a59f21763777d3f1318aebcd524e077b6a93c374e0910ff31b1e73b8b4908130d63c2bb7d060348602cffd215648f09afd8015c782e2340 SHA512 3c45d74e046e0fd09f152fcfa7af942c9097e3ed91a0915a2541caad14a8b94b9faceccdbc74bf8aa7c8f7b383db7e91e09babba9c2c28fd7855a7b809616839 diff --git a/dev-libs/boost/boost-1.84.0-r1.ebuild b/dev-libs/boost/boost-1.84.0-r1.ebuild deleted file mode 100644 index a9eadf2838c9..000000000000 --- a/dev-libs/boost/boost-1.84.0-r1.ebuild +++ /dev/null @@ -1,361 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Keep an eye on both of these after releases for patches: -# * https://www.boost.org/patches/ -# * https://www.boost.org/users/history/version_${MY_PV}.html -# (e.g. https://www.boost.org/users/history/version_1_83_0.html) -# Note that the latter may sometimes feature patches not on the former too. - -PYTHON_COMPAT=( python3_{10..12} ) - -inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal - -MY_PV="$(ver_rs 1- _)" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="https://www.boost.org/" -SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2" -S="${WORKDIR}/${PN}_${MY_PV}" - -LICENSE="Boost-1.0" -SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -# 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" - -RDEPEND=" - bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] ) - icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] ) - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] ) - lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] ) - mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] ) - python? ( - ${PYTHON_DEPS} - numpy? ( dev-python/numpy[${PYTHON_USEDEP}] ) - ) - zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] ) - zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )" -DEPEND="${RDEPEND}" -BDEPEND=">=dev-build/b2-4.9.2" - -PATCHES=( - "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch - "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch - # Boost.MPI's __init__.py doesn't work on Py3 - "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch - "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch - "${FILESDIR}"/${PN}-1.83.0-math-gcc14.patch - - # upstreamed - "${FILESDIR}"/${PN}-1.79.0-context-x32.patch - "${FILESDIR}"/${PN}-1.84.0-signals2-patch1.patch - "${FILESDIR}"/${PN}-1.84.0-signals2-patch2.patch -) - -python_bindings_needed() { - multilib_is_native_abi && use python -} - -tools_needed() { - multilib_is_native_abi && use tools -} - -create_user-config.jam() { - local user_config_jam="${BUILD_DIR}"/user-config.jam - if [[ -s ${user_config_jam} ]]; then - einfo "${user_config_jam} already exists, skipping configuration" - return - else - einfo "Creating configuration in ${user_config_jam}" - fi - - local compiler compiler_version compiler_executable="$(tc-getCXX)" - compiler="gcc" - compiler_version="$(gcc-version)" - - if use mpi; then - local mpi_configuration="using mpi ;" - fi - - cat > "${user_config_jam}" <<- __EOF__ || die - using ${compiler} : ${compiler_version} : ${compiler_executable} : "${CPPFLAGS} ${CFLAGS}" "${CPPFLAGS} ${CXXFLAGS}" "${LDFLAGS}" "$(tc-getAR)" "$(tc-getRANLIB)" ; - ${mpi_configuration} - __EOF__ - - if python_bindings_needed; then - append_to_user_config() { - local py_config - if tc-is-cross-compiler; then - py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;" - else - py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;" - fi - echo "${py_config}" >> "${user_config_jam}" || die - } - python_foreach_impl append_to_user_config - fi - - if python_bindings_needed && use numpy; then - einfo "Enabling support for NumPy extensions in Boost.Python" - else - einfo "Disabling support for NumPy extensions in Boost.Python" - - # Boost.Build does not allow for disabling of numpy - # extensions, thereby leading to automagic numpy - # https://github.com/boostorg/python/issues/111#issuecomment-280447482 - sed \ - -e 's/\[ unless \[ python\.numpy \] : no \]/no/g' \ - -i "${BUILD_DIR}"/libs/python/build/Jamfile || die - fi -} - -pkg_setup() { - # Bail out on unsupported build configuration, bug #456792 - if [[ -f "${EROOT}"/etc/site-config.jam ]]; then - if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then - 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 "Unsupported target in ${EROOT}/etc/site-config.jam" - fi - fi -} - -src_prepare() { - default - multilib_copy_sources -} - -ejam() { - create_user-config.jam - - local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" ) - if python_bindings_needed; then - append_to_b2_opts() { - b2_opts+=( python="${EPYTHON#python}" ) - } - python_foreach_impl append_to_b2_opts - else - b2_opts+=( --without-python ) - fi - b2_opts+=( "$@" ) - - echo b2 "${b2_opts[@]}" >&2 - b2 "${b2_opts[@]}" -} - -src_configure() { - # Workaround for too many parallel processes requested, bug #506064 - [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64" - - # We don't want to end up with -L/usr/lib on our linker lines - # which then gives us lots of - # skipping incompatible /usr/lib/libc.a when searching for -lc - # warnings - [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr" - - OPTIONS=( - $(usex debug gentoodebug gentoorelease) - "-j$(makeopts_jobs)" - -q - -d+2 - pch=off - $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off') - $(usev !mpi --without-mpi) - $(usev !nls --without-locale) - $(usev !context '--without-context --without-coroutine --without-fiber') - $(usev !stacktrace --without-stacktrace) - --boost-build="${BROOT}"/usr/share/b2/src - --layout=system - # building with threading=single is currently not possible - # https://svn.boost.org/trac/boost/ticket/7105 - threading=multi - link=shared - # this seems to be the only way to disable compression algorithms - # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build - -sNO_BZIP2=$(usex bzip2 0 1) - -sNO_LZMA=$(usex lzma 0 1) - -sNO_ZLIB=$(usex zlib 0 1) - -sNO_ZSTD=$(usex zstd 0 1) - ) - - 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 - fi - - # Use C++17 globally as of 1.80 - append-cxxflags -std=c++17 - - if [[ ${CHOST} != *-darwin* ]]; then - # On modern macOS, file I/O is already 64-bit by default, - # there's no support for special options like O_LARGEFILE. - # Thus, LFS must be disabled. - # - # On other systems, we need to enable LFS explicitly for 64-bit - # offsets on 32-bit hosts (#894564) - append-lfs-flags - fi -} - -multilib_src_compile() { - ejam \ - --prefix="${EPREFIX}"/usr \ - "${OPTIONS[@]}" || die - - if tools_needed; then - pushd tools >/dev/null || die - ejam \ - --prefix="${EPREFIX}"/usr \ - "${OPTIONS[@]}" \ - || die "Building of Boost tools failed" - popd >/dev/null || die - fi -} - -multilib_src_install() { - ejam \ - --prefix="${ED}"/usr \ - --includedir="${ED}"/usr/include \ - --libdir="${ED}"/usr/$(get_libdir) \ - "${OPTIONS[@]}" install || die "Installation of Boost libraries failed" - - 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 - # these paths look like this: - # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/ - # threadapi-pthread/threading-multi/visibility-hidden/ - # libboost_thread.dylib - refs=$(otool -XL "${d}" | \ - sed -e '1d' -e 's/^\t//' | \ - grep "libboost_" | \ - cut -f1 -d' ') - local r - for r in ${refs}; do - # strip path prefix from references, so we obtain - # something like libboost_thread.dylib. - local r_basename=${r##*/} - - ebegin " correcting reference to ${r_basename}" - install_name_tool -change \ - "${r}" \ - "${EPREFIX}/usr/lib/${r_basename}" \ - "${d}" - eend $? - done - fi - done - fi -} - -multilib_src_install_all() { - if ! use numpy; then - rm -r "${ED}"/usr/include/boost/python/numpy* || die - fi - - if use python; then - if use mpi; then - move_mpi_py_into_sitedir() { - python_moduleinto boost - python_domodule "${S}"/libs/mpi/build/__init__.py - - python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so - rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die - - python_optimize - } - python_foreach_impl move_mpi_py_into_sitedir - else - rm -r "${ED}"/usr/include/boost/mpi/python* || die - fi - else - rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/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{,2} || die - rm "${ED}"/usr/include/boost/asio/spawn.hpp || die - fi - - if use doc; then - # find extraneous files that shouldn't be installed - # as part of the documentation and remove them. - find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die - find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die - find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die - - docinto html - dodoc *.{htm,html,png,css} - dodoc -r doc libs more tools - - # To avoid broken links - dodoc LICENSE_1_0.txt - - dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost - fi -} - -pkg_preinst() { - # Yay 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 - if [[ -L ${symlink} ]]; then - rm -f "${symlink}" || die - fi - done - - # some ancient installs still have boost cruft lying around - # for unknown reasons, causing havoc for reverse dependencies - # Bug: 607734 - rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die -} - -pkg_postinst() { - elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as" - elog - elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation" - elog " ::transform_primary[abi:cxx11](char const*, char const*) const'" - elog - elog "Then you need to recompile Boost and all its reverse dependencies" - elog "using the same toolchain. In general, *every* change of the C++ toolchain" - elog "requires a complete rebuild of the Boost-dependent ecosystem." - elog - elog "See for instance https://bugs.gentoo.org/638138" -} diff --git a/dev-libs/boost/boost-1.84.0-r2.ebuild b/dev-libs/boost/boost-1.84.0-r2.ebuild new file mode 100644 index 000000000000..8240ff805fc4 --- /dev/null +++ b/dev-libs/boost/boost-1.84.0-r2.ebuild @@ -0,0 +1,360 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Keep an eye on both of these after releases for patches: +# * https://www.boost.org/patches/ +# * https://www.boost.org/users/history/version_${MY_PV}.html +# (e.g. https://www.boost.org/users/history/version_1_83_0.html) +# Note that the latter may sometimes feature patches not on the former too. + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal + +MY_PV="$(ver_rs 1- _)" + +DESCRIPTION="Boost Libraries for C++" +HOMEPAGE="https://www.boost.org/" +SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2" +S="${WORKDIR}/${PN}_${MY_PV}" + +LICENSE="Boost-1.0" +SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +# 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" + +RDEPEND=" + bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] ) + icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] ) + !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] ) + lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] ) + mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] ) + python? ( + ${PYTHON_DEPS} + numpy? ( dev-python/numpy[${PYTHON_USEDEP}] ) + ) + zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND}" +BDEPEND=">=dev-build/b2-4.9.2" + +PATCHES=( + "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch + "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch + # Boost.MPI's __init__.py doesn't work on Py3 + "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch + "${FILESDIR}"/${PN}-1.83.0-math-gcc14.patch + + # upstreamed + "${FILESDIR}"/${PN}-1.79.0-context-x32.patch + "${FILESDIR}"/${PN}-1.84.0-signals2-patch1.patch + "${FILESDIR}"/${PN}-1.84.0-signals2-patch2.patch +) + +python_bindings_needed() { + multilib_is_native_abi && use python +} + +tools_needed() { + multilib_is_native_abi && use tools +} + +create_user-config.jam() { + local user_config_jam="${BUILD_DIR}"/user-config.jam + if [[ -s ${user_config_jam} ]]; then + einfo "${user_config_jam} already exists, skipping configuration" + return + else + einfo "Creating configuration in ${user_config_jam}" + fi + + local compiler compiler_version compiler_executable="$(tc-getCXX)" + compiler="gcc" + compiler_version="$(gcc-version)" + + if use mpi; then + local mpi_configuration="using mpi ;" + fi + + cat > "${user_config_jam}" <<- __EOF__ || die + using ${compiler} : ${compiler_version} : ${compiler_executable} : "${CPPFLAGS} ${CFLAGS}" "${CPPFLAGS} ${CXXFLAGS}" "${LDFLAGS}" "$(tc-getAR)" "$(tc-getRANLIB)" ; + ${mpi_configuration} + __EOF__ + + if python_bindings_needed; then + append_to_user_config() { + local py_config + if tc-is-cross-compiler; then + py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;" + else + py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;" + fi + echo "${py_config}" >> "${user_config_jam}" || die + } + python_foreach_impl append_to_user_config + fi + + if python_bindings_needed && use numpy; then + einfo "Enabling support for NumPy extensions in Boost.Python" + else + einfo "Disabling support for NumPy extensions in Boost.Python" + + # Boost.Build does not allow for disabling of numpy + # extensions, thereby leading to automagic numpy + # https://github.com/boostorg/python/issues/111#issuecomment-280447482 + sed \ + -e 's/\[ unless \[ python\.numpy \] : no \]/no/g' \ + -i "${BUILD_DIR}"/libs/python/build/Jamfile || die + fi +} + +pkg_setup() { + # Bail out on unsupported build configuration, bug #456792 + if [[ -f "${EROOT}"/etc/site-config.jam ]]; then + if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then + 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 "Unsupported target in ${EROOT}/etc/site-config.jam" + fi + fi +} + +src_prepare() { + default + multilib_copy_sources +} + +ejam() { + create_user-config.jam + + local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" ) + if python_bindings_needed; then + append_to_b2_opts() { + b2_opts+=( python="${EPYTHON#python}" ) + } + python_foreach_impl append_to_b2_opts + else + b2_opts+=( --without-python ) + fi + b2_opts+=( "$@" ) + + echo b2 "${b2_opts[@]}" >&2 + b2 "${b2_opts[@]}" +} + +src_configure() { + # Workaround for too many parallel processes requested, bug #506064 + [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64" + + # We don't want to end up with -L/usr/lib on our linker lines + # which then gives us lots of + # skipping incompatible /usr/lib/libc.a when searching for -lc + # warnings + [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr" + + OPTIONS=( + $(usex debug gentoodebug gentoorelease) + "-j$(makeopts_jobs)" + -q + -d+2 + pch=off + $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off') + $(usev !mpi --without-mpi) + $(usev !nls --without-locale) + $(usev !context '--without-context --without-coroutine --without-fiber') + $(usev !stacktrace --without-stacktrace) + --boost-build="${BROOT}"/usr/share/b2/src + --layout=system + # building with threading=single is currently not possible + # https://svn.boost.org/trac/boost/ticket/7105 + threading=multi + link=shared + # this seems to be the only way to disable compression algorithms + # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build + -sNO_BZIP2=$(usex bzip2 0 1) + -sNO_LZMA=$(usex lzma 0 1) + -sNO_ZLIB=$(usex zlib 0 1) + -sNO_ZSTD=$(usex zstd 0 1) + ) + + 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 + fi + + # Use C++17 globally as of 1.80 + append-cxxflags -std=c++17 + + if [[ ${CHOST} != *-darwin* ]]; then + # On modern macOS, file I/O is already 64-bit by default, + # there's no support for special options like O_LARGEFILE. + # Thus, LFS must be disabled. + # + # On other systems, we need to enable LFS explicitly for 64-bit + # offsets on 32-bit hosts (#894564) + append-lfs-flags + fi +} + +multilib_src_compile() { + ejam \ + --prefix="${EPREFIX}"/usr \ + "${OPTIONS[@]}" || die + + if tools_needed; then + pushd tools >/dev/null || die + ejam \ + --prefix="${EPREFIX}"/usr \ + "${OPTIONS[@]}" \ + || die "Building of Boost tools failed" + popd >/dev/null || die + fi +} + +multilib_src_install() { + ejam \ + --prefix="${ED}"/usr \ + --includedir="${ED}"/usr/include \ + --libdir="${ED}"/usr/$(get_libdir) \ + "${OPTIONS[@]}" install || die "Installation of Boost libraries failed" + + 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 + # these paths look like this: + # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/ + # threadapi-pthread/threading-multi/visibility-hidden/ + # libboost_thread.dylib + refs=$(otool -XL "${d}" | \ + sed -e '1d' -e 's/^\t//' | \ + grep "libboost_" | \ + cut -f1 -d' ') + local r + for r in ${refs}; do + # strip path prefix from references, so we obtain + # something like libboost_thread.dylib. + local r_basename=${r##*/} + + ebegin " correcting reference to ${r_basename}" + install_name_tool -change \ + "${r}" \ + "${EPREFIX}/usr/lib/${r_basename}" \ + "${d}" + eend $? + done + fi + done + fi +} + +multilib_src_install_all() { + if ! use numpy; then + rm -r "${ED}"/usr/include/boost/python/numpy* || die + fi + + if use python; then + if use mpi; then + move_mpi_py_into_sitedir() { + python_moduleinto boost + python_domodule "${S}"/libs/mpi/build/__init__.py + + python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so + rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die + + python_optimize + } + python_foreach_impl move_mpi_py_into_sitedir + else + rm -r "${ED}"/usr/include/boost/mpi/python* || die + fi + else + rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/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{,2} || die + rm "${ED}"/usr/include/boost/asio/spawn.hpp || die + fi + + if use doc; then + # find extraneous files that shouldn't be installed + # as part of the documentation and remove them. + find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die + find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die + find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die + + docinto html + dodoc *.{htm,html,png,css} + dodoc -r doc libs more tools + + # To avoid broken links + dodoc LICENSE_1_0.txt + + dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost + fi +} + +pkg_preinst() { + # Yay 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 + if [[ -L ${symlink} ]]; then + rm -f "${symlink}" || die + fi + done + + # some ancient installs still have boost cruft lying around + # for unknown reasons, causing havoc for reverse dependencies + # Bug: 607734 + rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die +} + +pkg_postinst() { + elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as" + elog + elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation" + elog " ::transform_primary[abi:cxx11](char const*, char const*) const'" + elog + elog "Then you need to recompile Boost and all its reverse dependencies" + elog "using the same toolchain. In general, *every* change of the C++ toolchain" + elog "requires a complete rebuild of the Boost-dependent ecosystem." + elog + elog "See for instance https://bugs.gentoo.org/638138" +} diff --git a/dev-libs/libcdio/Manifest b/dev-libs/libcdio/Manifest index 0ed51e7a4cdc..dd9ce077008f 100644 --- a/dev-libs/libcdio/Manifest +++ b/dev-libs/libcdio/Manifest @@ -1,5 +1,5 @@ AUX libcdio-2.1.0-ncurses_pkgconfig.patch 923 BLAKE2B 848a76241ca173c452cf7b04142c249ca6c33b7d0514f03353bb7b1f43635d1bec36cf9f3e3ce61ab51d6cb42ab123f620fe6fe1706b71148ec2ab9592c0bc02 SHA512 98c16eebd1cd6bf57e85dd3abafba22a4a1f2f88e0d5f1c9ee98d7409c360c6e3dda43233823de97429a54be66969cec1eb8df4bbb7d0341a54c6a1ae475dd7b AUX libcdio-2.1.0-realpath-test-fix.patch 1838 BLAKE2B 9e500479587a76925adc0bc6fed620e8a4880b45ca691ed0eb3aec4909ff48f14804a3d44405204d27d89628f050bb6f0f0d6342e483222e565d3613e97c550a SHA512 2395fb3cf9b56beeca6e91399be185d01ad460217ba144b5959d3941cdfca450795b0fab6466c471cb2714a4c004c3acf0097da1696cb33074d4aa0567feb504 DIST libcdio-2.1.0.tar.bz2 1759040 BLAKE2B 4859fc545cf81246279b7b0434c02916e874681b40d00f8253fd7837941a34c5a717a81b1c3b1714153ad343e03c28668984f6fd5647662ec4e6759752326cb0 SHA512 c290821da55fd9ae366670a58857aa6efcebc9f25b7caea063cf12f9cbda84fe770c5f59f972227fda50517ca58c5f39c0137daa0f93179e3daa45303d8b610f -EBUILD libcdio-2.1.0-r1.ebuild 1813 BLAKE2B cdbe473d6e21b15f678ce60ea214dc225d9da5488f36595947f7241ffbe1e43dee1070770584d427c647b7d0781e4bd13aa8653c794518121ac56807dcdd8f87 SHA512 59be8a5fd57a59e18257dab01f82c552492998aca985551a08efd94a423851a8d419b6f17a860787f444ac8153fbb2dd2eef34bc9a6f0bcaa6c854dc0b1e4aec +EBUILD libcdio-2.1.0-r1.ebuild 1943 BLAKE2B c371356b1a16a63d187b3a8e8bf6283db5ecea279d6f867dde431e54ea68d5ab98a672cbee1b6e3bdb02e1454c0c585650a2a43d5ce7b9c454c78e54201a013c SHA512 edc42826ae4f68098e03442010ebbc886453c9ad230c9f4f7488cfc26ab471d66d82a21e87992e33124604771a1caba9a81eb65a00c4637d568100caf893a571 MISC metadata.xml 607 BLAKE2B f3850b573e21dbfa2c9bb30265db3bb9db41408685f7aa6234b77f2cf73d8e304ebe8b2a4ff3f6bcb67a9291f38138c18f2740ac166a96cb45a94e5c1981a27d SHA512 b07c8e25ac87bb07ce32e4b92704f1c5bb0f52fb06ab77267655449e005b159589eefef1bf7bb2318ef98f83fe34ec2f224c29ce0aec41b665161fc1e5d123e8 diff --git a/dev-libs/libcdio/libcdio-2.1.0-r1.ebuild b/dev-libs/libcdio/libcdio-2.1.0-r1.ebuild index 122dfa96d536..cdbeceb6079b 100644 --- a/dev-libs/libcdio/libcdio-2.1.0-r1.ebuild +++ b/dev-libs/libcdio/libcdio-2.1.0-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -inherit autotools libtool multilib-minimal +inherit autotools flag-o-matic libtool multilib-minimal DESCRIPTION="A library to encapsulate CD-ROM reading and control" HOMEPAGE="https://www.gnu.org/software/libcdio/" @@ -45,11 +45,13 @@ src_prepare() { default eautoreconf - - elibtoolize # to prevent -L/usr/lib ending up in the linker line wrt 499510 + elibtoolize # to prevent -L/usr/lib ending up in the linker line wrt #499510 } multilib_src_configure() { + # Workaround for LLD 17, drop after 2.1.0 (bug #915826) + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + local util_switch if ! multilib_is_native_abi || use minimal ; then util_switch="--without" diff --git a/dev-libs/oneDNN/Manifest b/dev-libs/oneDNN/Manifest index 922ef95e2e53..980ae8b279fd 100644 --- a/dev-libs/oneDNN/Manifest +++ b/dev-libs/oneDNN/Manifest @@ -1,3 +1,4 @@ +AUX oneDNN-3.3.3-include-cstdint.patch 384 BLAKE2B dd958da1fbb85ebb4946025e9dc53f1263f0e6da06add1a3689bed951f6eeebbdc2f925961c04f3f97d3ad458dcd0819154023f74558f12c9470e767cfa77220 SHA512 e03ed31bca57ffa7f1c8d672a120e0411d41e211435964f5ef751bf22791fc438aa282c68255dd88e7aeb3396d6ab0c77e616d8a16fa1c65f6c8c60d8fc3ff01 DIST oneDNN-3.3.3.tar.gz 11577369 BLAKE2B 85df74235d70d30d69ebb1702dcb328466d38046b37f4078b1d6880c7cbe079d095e53e5c9e2f0f77daca057cae62e661ac1bf919e8f128cf9c76a847dc0425d SHA512 bb4a6b33b3191b9e517a321dd089b7debb528dd2d4be48f52626308fe0e1dbea3fa6149fd9debe6aa23f11224ac80e4d3ee1e251d2007faf9bcc262bb895de71 -EBUILD oneDNN-3.3.3.ebuild 2938 BLAKE2B 2ad6b0f9ce0a02e4368594cd9bfa04ddfbdf17a39daed72d1021f3c1cd3e7e39330b555bf172b6be999bc514a8f9d2caba0b30d7ddee1c6f26620e4588718a1b SHA512 a77b3ef9e200adc50c007ea7d47292cd71be2fdd4e4d610914afb961097598285b96cd23c23cda16ee7de04f1d8fa3dece189f8b33970746faa88175659fe630 +EBUILD oneDNN-3.3.3.ebuild 3000 BLAKE2B d0bd32d0bd563bd1e1f44e3e625a6d0e34e45f14f96f9a50999ef35ded395a1a07a97165c521bdab3ef5d668a1d867b1ac464ee1b349a8d5fd6e1d856fb5b051 SHA512 54b405d620aca298ce5135a677b5e0db4f43b59e51d8e98c1f19e2ffa9dff7a5083aeb0bf7c73e2bddc37e9531bde054403f07228902eda0c0440ab9c6d3100d MISC metadata.xml 777 BLAKE2B 33c65c97e0c8132e315aa389c395407e8985fbe1607222f2affb04534c33e4df14776d90f3293fc651d7892f703cc8eff5803d075291c979bcd828aa51ab1778 SHA512 9b0c2354f69d0e2656bba2995fb956f16d6fad65887f240b670548d244074e7fe92bff73afd379e9d9a208c39ac7da01de97463aa65c37dd51aded32228aafd3 diff --git a/dev-libs/oneDNN/files/oneDNN-3.3.3-include-cstdint.patch b/dev-libs/oneDNN/files/oneDNN-3.3.3-include-cstdint.patch new file mode 100644 index 000000000000..024c1350340e --- /dev/null +++ b/dev-libs/oneDNN/files/oneDNN-3.3.3-include-cstdint.patch @@ -0,0 +1,13 @@ +Fix for dims.hpp:25:28: error: int64_t was not declared in this scope +Bug: https://bugs.gentoo.org/922778 +Upstream fix: https://github.com/oneapi-src/oneDNN/pull/1792 +--- a/tests/benchdnn/utils/dims.hpp ++++ b/tests/benchdnn/utils/dims.hpp +@@ -18,6 +18,7 @@ + #define UTILS_DIMS_T_HPP + + #include ++#include + #include + #include + #include diff --git a/dev-libs/oneDNN/oneDNN-3.3.3.ebuild b/dev-libs/oneDNN/oneDNN-3.3.3.ebuild index 88b11ae05e38..6ce3ea96e786 100644 --- a/dev-libs/oneDNN/oneDNN-3.3.3.ebuild +++ b/dev-libs/oneDNN/oneDNN-3.3.3.ebuild @@ -31,6 +31,10 @@ DEPEND=" " RDEPEND="${DEPEND}" +PATCHES=( + "${FILESDIR}/${PN}-3.3.3-include-cstdint.patch" +) + src_configure() { local mycmakeargs=( -DDNNL_LIBRARY_TYPE=$(usex static-libs STATIC SHARED) -- cgit v1.2.3