dev-util/b2: Sync with Gentoo

It's from Gentoo commit 93eefe41527dc757171f76dd9f3c32b8ad925ea4.
This commit is contained in:
Flatcar Buildbot 2023-04-24 07:13:06 +00:00 committed by Krzesimir Nowak
parent cfd78f9121
commit 7dac0dfd65
6 changed files with 1 additions and 257 deletions

View File

@ -1,3 +1 @@
DIST b2-4.9.3.tar.gz 975934 BLAKE2B 8d16e7227676786408f0d84efb577806e304a9181b89656dad1243b5b0b48e67d4226fa51ea97d4ea10110e4ea86f3ae2884d711fa4b04e36bdaa68dff0a4710 SHA512 8f861074a50720ad5469277a469523ef5f87ef2aab65d745f4c5e6af0ed8f40af91c43cd42b7845982c065974026ce1ecc77a831cd0c698c7e22fa848cc81009
DIST b2-4.9.5.tar.gz 977680 BLAKE2B 9025554e4c68257a8d12af9db22c3c3e4c13a5244c7ca474fb935a76fb8fdf2a0a7778756a7b022de90d6585edb758e8dbc54e012f2340ab055b1294709625e8 SHA512 398398e1437554aad0dc123bbf30bd61b26266058b872eb18dd84941cccf3bbc8903944c09add7bf5f05fb8424539fd4358e9b1bcdd4dbfbc84d4f41710e92e6
DIST b2-4.9.6.tar.gz 977724 BLAKE2B 15ce459d7051be037bdb477432591baccb4e5339a16385a63205c19815766406f631879f0e1f986e184640466f5b6af5ade72d248975731528032a8e735e483e SHA512 a3dc9dccbf1221971607a15df642d4ad9029c1acaf329e419f363a6e6ddb6062a8ef595aa49810dc2ff3a3f333bfbaed7384819a143cc5847a95daf6fd48ccb1 DIST b2-4.9.6.tar.gz 977724 BLAKE2B 15ce459d7051be037bdb477432591baccb4e5339a16385a63205c19815766406f631879f0e1f986e184640466f5b6af5ade72d248975731528032a8e735e483e SHA512 a3dc9dccbf1221971607a15df642d4ad9029c1acaf329e419f363a6e6ddb6062a8ef595aa49810dc2ff3a3f333bfbaed7384819a143cc5847a95daf6fd48ccb1

View File

@ -1,67 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit edo flag-o-matic toolchain-funcs
MY_PV="$(ver_rs 1- _)"
DESCRIPTION="A system for large project software construction, simple to use and powerful"
HOMEPAGE="https://www.bfgroup.xyz/b2/"
SRC_URI="https://github.com/bfgroup/b2/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${P}/src"
LICENSE="Boost-1.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="examples"
RESTRICT="test"
RDEPEND="!dev-util/boost-build"
PATCHES=(
"${FILESDIR}"/${PN}-4.9.2-disable_python_rpath.patch
"${FILESDIR}"/${PN}-4.9.2-darwin-gentoo-toolchain.patch
"${FILESDIR}"/${PN}-4.9.2-add-none-feature-options.patch
"${FILESDIR}"/${PN}-4.9.2-no-implicit-march-flags.patch
"${FILESDIR}"/${PN}-4.9.2-odr.patch
"${FILESDIR}"/${PN}-4.9.3-fix-apple-m1-crash-by-explicit-pointer-cast.patch
)
src_configure() {
# need to enable LFS explicitly for 64-bit offsets on 32-bit hosts (#761100)
append-lfs-flags
}
src_compile() {
cd engine || die
# upstream doesn't want separate flags for CPPFLAGS/LDFLAGS
# https://github.com/bfgroup/b2/pull/187#issuecomment-1335688424
edo ${CONFIG_SHELL:-${BASH}} ./build.sh cxx --cxx="$(tc-getCXX)" --cxxflags="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" -d+2 --without-python
}
src_test() {
# Forget tests, b2 is a lost cause
:
}
src_install() {
dobin engine/b2
insinto /usr/share/b2/src
doins -r "${FILESDIR}/site-config.jam" \
bootstrap.jam build-system.jam ../example/user-config.jam \
build kernel options tools util
find "${ED}"/usr/share/b2/src -iname '*.py' -delete || die
dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
if use examples; then
docinto examples
dodoc -r ../example/.
docompress -x /usr/share/doc/${PF}/examples
fi
}

View File

@ -1,66 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit edo flag-o-matic toolchain-funcs
MY_PV="$(ver_rs 1- _)"
DESCRIPTION="A system for large project software construction, simple to use and powerful"
HOMEPAGE="https://www.bfgroup.xyz/b2/"
SRC_URI="https://github.com/bfgroup/b2/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${P}/src"
LICENSE="Boost-1.0"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="examples"
RESTRICT="test"
RDEPEND="!dev-util/boost-build"
PATCHES=(
"${FILESDIR}"/${PN}-4.9.2-disable_python_rpath.patch
"${FILESDIR}"/${PN}-4.9.2-darwin-gentoo-toolchain.patch
"${FILESDIR}"/${PN}-4.9.2-add-none-feature-options.patch
"${FILESDIR}"/${PN}-4.9.2-no-implicit-march-flags.patch
"${FILESDIR}"/${PN}-4.9.2-odr.patch
)
src_configure() {
# need to enable LFS explicitly for 64-bit offsets on 32-bit hosts (#761100)
append-lfs-flags
}
src_compile() {
cd engine || die
# upstream doesn't want separate flags for CPPFLAGS/LDFLAGS
# https://github.com/bfgroup/b2/pull/187#issuecomment-1335688424
edo ${CONFIG_SHELL:-${BASH}} ./build.sh cxx --cxx="$(tc-getCXX)" --cxxflags="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" -d+2 --without-python
}
src_test() {
# Forget tests, b2 is a lost cause
:
}
src_install() {
dobin engine/b2
insinto /usr/share/b2/src
doins -r "${FILESDIR}/site-config.jam" \
bootstrap.jam build-system.jam ../example/user-config.jam \
build kernel options tools util
find "${ED}"/usr/share/b2/src -iname '*.py' -delete || die
dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
if use examples; then
docinto examples
dodoc -r ../example/.
docompress -x /usr/share/doc/${PF}/examples
fi
}

View File

@ -1,66 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit edo flag-o-matic toolchain-funcs
MY_PV="$(ver_rs 1- _)"
DESCRIPTION="A system for large project software construction, simple to use and powerful"
HOMEPAGE="https://www.bfgroup.xyz/b2/"
SRC_URI="https://github.com/bfgroup/b2/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${P}/src"
LICENSE="Boost-1.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="examples"
RESTRICT="test"
RDEPEND="!dev-util/boost-build"
PATCHES=(
"${FILESDIR}"/${PN}-4.9.2-disable_python_rpath.patch
"${FILESDIR}"/${PN}-4.9.2-darwin-gentoo-toolchain.patch
"${FILESDIR}"/${PN}-4.9.2-add-none-feature-options.patch
"${FILESDIR}"/${PN}-4.9.2-no-implicit-march-flags.patch
"${FILESDIR}"/${PN}-4.9.2-odr.patch
)
src_configure() {
# need to enable LFS explicitly for 64-bit offsets on 32-bit hosts (#761100)
append-lfs-flags
}
src_compile() {
cd engine || die
# upstream doesn't want separate flags for CPPFLAGS/LDFLAGS
# https://github.com/bfgroup/b2/pull/187#issuecomment-1335688424
edo ${CONFIG_SHELL:-${BASH}} ./build.sh cxx --cxx="$(tc-getCXX)" --cxxflags="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" -d+2 --without-python
}
src_test() {
# Forget tests, b2 is a lost cause
:
}
src_install() {
dobin engine/b2
insinto /usr/share/b2/src
doins -r "${FILESDIR}/site-config.jam" \
bootstrap.jam build-system.jam ../example/user-config.jam \
build kernel options tools util
find "${ED}"/usr/share/b2/src -iname '*.py' -delete || die
dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
if use examples; then
docinto examples
dodoc -r ../example/.
docompress -x /usr/share/doc/${PF}/examples
fi
}

View File

@ -14,7 +14,7 @@ S="${WORKDIR}/${P}/src"
LICENSE="Boost-1.0" LICENSE="Boost-1.0"
SLOT="0" SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="examples" IUSE="examples"
RESTRICT="test" RESTRICT="test"

View File

@ -1,55 +0,0 @@
https://github.com/bfgroup/b2/issues/152
https://github.com/bfgroup/b2/pull/214
https://bugs.gentoo.org/895524
From 62dc6ff74a0b9717b4a8dd61ce06770e6fb7c177 Mon Sep 17 00:00:00 2001
From: Yifeng Li <tomli@tomli.me>
Date: Mon, 20 Feb 2023 09:52:32 +0000
Subject: [PATCH] Fix #152 crash on Apple M1 by casting 0 to (OBJECT *)
explicitly.
Currently, when the NULL-terminated variadic function call_rule()
is invoked, the value "0" is passed as the last argument to act
as a terminator. However, this is an integer value, which is
incompatible with the pointer data type expected by call_rule().
This is undefined behavior in C, correct operation is not
guaranteed. In fact, it causes b2 to crash on Apple M1 when GCC
is used - the loop is not terminated when it should, instead, it
keeps running, creating the following error:
> lol_add failed due to reached limit of 19 elements
In some cases, it can even corrupt the internal state of the program,
creating an infinite loop.
This commit fixes the problem by explicitly casting the value 0 to
the correct pointer type (OBJECT *).
Signed-off-by: Yifeng Li <tomli@tomli.me>
---
src/engine/modules/property-set.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/engine/modules/property-set.cpp b/src/engine/modules/property-set.cpp
index 6e190a7639..b0d3c2dab8 100644
--- src/engine/modules/property-set.cpp
+++ src/engine/modules/property-set.cpp
@@ -162,7 +162,7 @@ LIST * property_set_create( FRAME * frame, int flags )
OBJECT * rulename = object_new( "new" );
OBJECT * varname = object_new( "self.raw" );
LIST * val = call_rule( rulename, frame,
- list_new( object_new( "property-set" ) ), 0 );
+ list_new( object_new( "property-set" ) ), (OBJECT *) 0 );
LISTITER iter, end;
object_free( rulename );
pos->value = object_copy( list_front( val ) );
@@ -183,7 +183,7 @@ LIST * property_set_create( FRAME * frame, int flags )
import_module( imports, frame->module );
rulename = object_new( "errors.error" );
call_rule( rulename, frame,
- list_new( object_new( message->value ) ), 0 );
+ list_new( object_new( message->value ) ), (OBJECT *) 0 );
/* unreachable */
string_free( message );
list_free( imports );