Re: [gentoo-dev] New bootstrap-prefix global USE-flag and patch to llvm.eclass
13.09.2023 07:22, Sam James пишет: Fabian Groffen writes: [[PGP Signed Part:Undecided]] On 12-09-2023 20:32:19 +0100, Alexey Sokolov wrote: Bug: https://bugs.gentoo.org/758167 Full PR is at https://github.com/gentoo/gentoo/pull/32730 Several LLVM packages require this early return, otherwise they fail to build on Darwin. I'll also need this USE-flag for sys-devel/clang-common, to distinguish between stage2 and stage3 of bootstrap-prefix.sh to configure clang differently. -- Best regards, Alexey "DarthGandalf" Sokolov From de2bd1abc3e5c7607413633d132c604c6a801802 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Mon, 11 Sep 2023 23:26:49 +0100 Subject: [PATCH] llvm.eclass: add global USE flag bootstrap-prefix Mask it everywhere except for prefix profiles Without this, stage2's LLVM packages fail to build. Bug: https://bugs.gentoo.org/758167 Signed-off-by: Alexey Sokolov --- eclass/llvm.eclass| 7 +++ profiles/base/use.mask| 4 profiles/features/prefix/use.mask | 4 profiles/use.desc | 1 + 4 files changed, 16 insertions(+) diff --git a/eclass/llvm.eclass b/eclass/llvm.eclass index 8198650aad9a7..87c2cedb3a376 100644 --- a/eclass/llvm.eclass +++ b/eclass/llvm.eclass @@ -64,6 +64,8 @@ esac if [[ ! ${_LLVM_ECLASS} ]]; then _LLVM_ECLASS=1 +IUSE="bootstrap-prefix" + # make sure that the versions installing straight into /usr/bin # are uninstalled DEPEND="!!sys-devel/llvm:0" @@ -242,6 +244,11 @@ llvm_fix_tool_path() { llvm_pkg_setup() { debug-print-function ${FUNCNAME} "${@}" + if use bootstrap-prefix; then + # AppleClang has unparseable version numbers, but it's irrelevant anyway + return + fi + I might misunderstand this, but is this USE-flag supposed to be set only during bootstrap, e.g. when host-provided Clang is used? If so, would it be possible to use has_version or something instead? Another option is something I think we've done in the past - check for use prefix and then some extra env var we set in the bootstrap script. Somehow I haven't thought about using extra env var, will try that, thanks. We'll still need the USE-flag for sys-devel/clang-common because it will install different content with and without it, but that can be limited to a single package. I think I'd prefer either your idea or the one I just mention to a USE, but I don't think I feel very strongly between any of it. (but given mgorny isn't keen on the USE in the PR at https://github.com/gentoo/gentoo/pull/32730, that's a vote against it) Thanks, Fabian -- Best regards, Alexey "DarthGandalf" Sokolov
Re: [gentoo-dev] New bootstrap-prefix global USE-flag and patch to llvm.eclass
Fabian Groffen writes: > [[PGP Signed Part:Undecided]] > On 12-09-2023 20:32:19 +0100, Alexey Sokolov wrote: >> Bug: https://bugs.gentoo.org/758167 >> Full PR is at https://github.com/gentoo/gentoo/pull/32730 >> >> Several LLVM packages require this early return, otherwise they fail to >> build on Darwin. I'll also need this USE-flag for >> sys-devel/clang-common, to distinguish between stage2 and stage3 of >> bootstrap-prefix.sh to configure clang differently. >> >> -- >> Best regards, >> Alexey "DarthGandalf" Sokolov > >> From de2bd1abc3e5c7607413633d132c604c6a801802 Mon Sep 17 00:00:00 2001 >> From: Alexey Sokolov >> Date: Mon, 11 Sep 2023 23:26:49 +0100 >> Subject: [PATCH] llvm.eclass: add global USE flag bootstrap-prefix >> >> Mask it everywhere except for prefix profiles >> >> Without this, stage2's LLVM packages fail to build. >> >> Bug: https://bugs.gentoo.org/758167 >> Signed-off-by: Alexey Sokolov >> --- >> eclass/llvm.eclass| 7 +++ >> profiles/base/use.mask| 4 >> profiles/features/prefix/use.mask | 4 >> profiles/use.desc | 1 + >> 4 files changed, 16 insertions(+) >> >> diff --git a/eclass/llvm.eclass b/eclass/llvm.eclass >> index 8198650aad9a7..87c2cedb3a376 100644 >> --- a/eclass/llvm.eclass >> +++ b/eclass/llvm.eclass >> @@ -64,6 +64,8 @@ esac >> if [[ ! ${_LLVM_ECLASS} ]]; then >> _LLVM_ECLASS=1 >> >> +IUSE="bootstrap-prefix" >> + >> # make sure that the versions installing straight into /usr/bin >> # are uninstalled >> DEPEND="!!sys-devel/llvm:0" >> @@ -242,6 +244,11 @@ llvm_fix_tool_path() { >> llvm_pkg_setup() { >> debug-print-function ${FUNCNAME} "${@}" >> >> +if use bootstrap-prefix; then >> +# AppleClang has unparseable version numbers, but it's >> irrelevant anyway >> +return >> +fi >> + > > I might misunderstand this, but is this USE-flag supposed to be set only > during bootstrap, e.g. when host-provided Clang is used? If so, would > it be possible to use has_version or something instead? Another option is something I think we've done in the past - check for use prefix and then some extra env var we set in the bootstrap script. I think I'd prefer either your idea or the one I just mention to a USE, but I don't think I feel very strongly between any of it. (but given mgorny isn't keen on the USE in the PR at https://github.com/gentoo/gentoo/pull/32730, that's a vote against it) > > Thanks, > Fabian >
Re: [gentoo-dev] New bootstrap-prefix global USE-flag and patch to llvm.eclass
On 12-09-2023 20:32:19 +0100, Alexey Sokolov wrote: > Bug: https://bugs.gentoo.org/758167 > Full PR is at https://github.com/gentoo/gentoo/pull/32730 > > Several LLVM packages require this early return, otherwise they fail to > build on Darwin. I'll also need this USE-flag for > sys-devel/clang-common, to distinguish between stage2 and stage3 of > bootstrap-prefix.sh to configure clang differently. > > -- > Best regards, > Alexey "DarthGandalf" Sokolov > From de2bd1abc3e5c7607413633d132c604c6a801802 Mon Sep 17 00:00:00 2001 > From: Alexey Sokolov > Date: Mon, 11 Sep 2023 23:26:49 +0100 > Subject: [PATCH] llvm.eclass: add global USE flag bootstrap-prefix > > Mask it everywhere except for prefix profiles > > Without this, stage2's LLVM packages fail to build. > > Bug: https://bugs.gentoo.org/758167 > Signed-off-by: Alexey Sokolov > --- > eclass/llvm.eclass| 7 +++ > profiles/base/use.mask| 4 > profiles/features/prefix/use.mask | 4 > profiles/use.desc | 1 + > 4 files changed, 16 insertions(+) > > diff --git a/eclass/llvm.eclass b/eclass/llvm.eclass > index 8198650aad9a7..87c2cedb3a376 100644 > --- a/eclass/llvm.eclass > +++ b/eclass/llvm.eclass > @@ -64,6 +64,8 @@ esac > if [[ ! ${_LLVM_ECLASS} ]]; then > _LLVM_ECLASS=1 > > +IUSE="bootstrap-prefix" > + > # make sure that the versions installing straight into /usr/bin > # are uninstalled > DEPEND="!!sys-devel/llvm:0" > @@ -242,6 +244,11 @@ llvm_fix_tool_path() { > llvm_pkg_setup() { > debug-print-function ${FUNCNAME} "${@}" > > + if use bootstrap-prefix; then > + # AppleClang has unparseable version numbers, but it's > irrelevant anyway > + return > + fi > + I might misunderstand this, but is this USE-flag supposed to be set only during bootstrap, e.g. when host-provided Clang is used? If so, would it be possible to use has_version or something instead? Thanks, Fabian > if [[ ${MERGE_TYPE} != binary ]]; then > LLVM_SLOT=$(get_llvm_slot "${LLVM_MAX_SLOT}") > > diff --git a/profiles/base/use.mask b/profiles/base/use.mask > index 1d4f5b92865df..cc86fde21097a 100644 > --- a/profiles/base/use.mask > +++ b/profiles/base/use.mask > @@ -8,6 +8,10 @@ > # eudev is masked for removal > eudev > > +# Alexey Sokolov (2023-09-11) > +# Only needed during bootstrap of prefix > +bootstrap-prefix > + > # David Seifert (2023-09-09) > # EOL upstream in 2 months, causes major headaches for OpenSSL 1.1 > # masking. Removal on 2023-10-09. > diff --git a/profiles/features/prefix/use.mask > b/profiles/features/prefix/use.mask > index 482ce57f04485..1f43ca23fd101 100644 > --- a/profiles/features/prefix/use.mask > +++ b/profiles/features/prefix/use.mask > @@ -4,6 +4,10 @@ > # prefix USE flag should always be unmasked in prefix profiles > -prefix > > +# Alexey Sokolov (2023-09-11) > +# Allow bootstrapping the prefix > +-bootstrap-prefix > + > # USE flags inherited by the base/use.defaults file that shouldn't be in > Prefix > gpm > > diff --git a/profiles/use.desc b/profiles/use.desc > index 6034f3bf6fc31..37c64f43759da 100644 > --- a/profiles/use.desc > +++ b/profiles/use.desc > @@ -29,6 +29,7 @@ big-endian - Big-endian toolchain support > bindist - Flag to enable or disable options for prebuilt (GRP) packages (eg. > due to licensing issues) > blas - Add support for the virtual/blas numerical library > bluetooth - Enable Bluetooth Support > +bootstrap-prefix - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, > used for bootstrapping Gentoo Prefix > branding - Enable Gentoo specific branding > build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for > creating build images and the first half of bootstrapping [make stage1] > bzip2 - Use the bzlib compression library -- Fabian Groffen Gentoo on a different level signature.asc Description: PGP signature
[gentoo-dev] New bootstrap-prefix global USE-flag and patch to llvm.eclass
Bug: https://bugs.gentoo.org/758167 Full PR is at https://github.com/gentoo/gentoo/pull/32730 Several LLVM packages require this early return, otherwise they fail to build on Darwin. I'll also need this USE-flag for sys-devel/clang-common, to distinguish between stage2 and stage3 of bootstrap-prefix.sh to configure clang differently. -- Best regards, Alexey "DarthGandalf" SokolovFrom de2bd1abc3e5c7607413633d132c604c6a801802 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Mon, 11 Sep 2023 23:26:49 +0100 Subject: [PATCH] llvm.eclass: add global USE flag bootstrap-prefix Mask it everywhere except for prefix profiles Without this, stage2's LLVM packages fail to build. Bug: https://bugs.gentoo.org/758167 Signed-off-by: Alexey Sokolov --- eclass/llvm.eclass| 7 +++ profiles/base/use.mask| 4 profiles/features/prefix/use.mask | 4 profiles/use.desc | 1 + 4 files changed, 16 insertions(+) diff --git a/eclass/llvm.eclass b/eclass/llvm.eclass index 8198650aad9a7..87c2cedb3a376 100644 --- a/eclass/llvm.eclass +++ b/eclass/llvm.eclass @@ -64,6 +64,8 @@ esac if [[ ! ${_LLVM_ECLASS} ]]; then _LLVM_ECLASS=1 +IUSE="bootstrap-prefix" + # make sure that the versions installing straight into /usr/bin # are uninstalled DEPEND="!!sys-devel/llvm:0" @@ -242,6 +244,11 @@ llvm_fix_tool_path() { llvm_pkg_setup() { debug-print-function ${FUNCNAME} "${@}" + if use bootstrap-prefix; then + # AppleClang has unparseable version numbers, but it's irrelevant anyway + return + fi + if [[ ${MERGE_TYPE} != binary ]]; then LLVM_SLOT=$(get_llvm_slot "${LLVM_MAX_SLOT}") diff --git a/profiles/base/use.mask b/profiles/base/use.mask index 1d4f5b92865df..cc86fde21097a 100644 --- a/profiles/base/use.mask +++ b/profiles/base/use.mask @@ -8,6 +8,10 @@ # eudev is masked for removal eudev +# Alexey Sokolov (2023-09-11) +# Only needed during bootstrap of prefix +bootstrap-prefix + # David Seifert (2023-09-09) # EOL upstream in 2 months, causes major headaches for OpenSSL 1.1 # masking. Removal on 2023-10-09. diff --git a/profiles/features/prefix/use.mask b/profiles/features/prefix/use.mask index 482ce57f04485..1f43ca23fd101 100644 --- a/profiles/features/prefix/use.mask +++ b/profiles/features/prefix/use.mask @@ -4,6 +4,10 @@ # prefix USE flag should always be unmasked in prefix profiles -prefix +# Alexey Sokolov (2023-09-11) +# Allow bootstrapping the prefix +-bootstrap-prefix + # USE flags inherited by the base/use.defaults file that shouldn't be in Prefix gpm diff --git a/profiles/use.desc b/profiles/use.desc index 6034f3bf6fc31..37c64f43759da 100644 --- a/profiles/use.desc +++ b/profiles/use.desc @@ -29,6 +29,7 @@ big-endian - Big-endian toolchain support bindist - Flag to enable or disable options for prebuilt (GRP) packages (eg. due to licensing issues) blas - Add support for the virtual/blas numerical library bluetooth - Enable Bluetooth Support +bootstrap-prefix - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for bootstrapping Gentoo Prefix branding - Enable Gentoo specific branding build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping [make stage1] bzip2 - Use the bzlib compression library