Bug 15031 - Upgrade to boost-build 1.8.0 breaks patchability of target jam files
Summary: Upgrade to boost-build 1.8.0 breaks patchability of target jam files
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: oe-core other (show other bugs)
Version: unspecified
Hardware: All Multiple
: Medium normal
Target Milestone: 5.2
Assignee: Jens Georg
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2023-02-09 07:03 UTC by Jens Georg
Modified: 2025-06-05 15:15 UTC (History)
2 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Don't know


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jens Georg 2023-02-09 07:03:32 UTC
0c82598d22b69d8787faa1f9fe7c2e9bc62c4cfa upgraded the boost-build-native recipe to switch to 1.8x as this is required by the newer versions of boost.

However this causes something curious to happen:

When building boost for the target system, the b2 from boost-build-native takes the .jam files it installed to $sysroot-native/usr/share/b2 INSTEAD of the ones from the unpacked boost source

I have cross-checked that as follows:

 - Backporting boost-build of least 1.79 to kirkstone. This breaks my patches for the python jam file similarly to master. 1.78 does not break it and the main difference is the install location of the jam files from boost-build-native
 -  Moving /usr/share/b2 to /usr/share/boost-build (default before before 1.79) restores the old behavior.

I am happy to provide a fix, but I have no idea what the expected behavior here is.

Mine would be that patching the build files of the target should have an effect.
Comment 1 Randy MacLeod 2023-02-09 15:38:50 UTC
Hi Jens,

No one in the Yocto triage call has any experience with that so could you post a patch to the list?

Welcome to Yocto from a former physics geek (LBL, JLab!) -- Randy
Comment 2 Tim Orling 2023-02-09 15:56:53 UTC
Naively poking around a bit, seems this might be related?

https://github.com/boostorg/build/blob/develop/doc/src/history.adoc#version-490

Warning
This release removes the use of boost-build.jam and the boost-build rule for initialization. The boost-build.jam is still searched for and loaded to not break existing operations. But is considered deprecated and will be removed in a future release.
Comment 3 Tim Orling 2023-02-09 16:11:22 UTC
Apparently upstream is transitioning to https://github.com/bfgroup/b2

This commit is slightly concerning:
https://github.com/bfgroup/b2/commit/e746a952c7a350acf4884454022e0d9bac8c4dd5

Remove Python port.
The Python port and support extensions in B2 engine were unmaintained.
This fully removes the bindings between Jam and Python. And removes the
incomplete build system port.
Comment 4 Jens Georg 2023-02-10 08:54:57 UTC
(In reply to comment #3)
> Apparently upstream is transitioning to https://github.com/bfgroup/b2

The boost build systems utterly confuse me. I though boost-build was the externalized version of what is bootstrapped inside boost

(In reply to comment #3)
> Remove Python port.
> The Python port and support extensions in B2 engine were unmaintained.
> This fully removes the bindings between Jam and Python. And removes the
> incomplete build system port.

I think the python port only references the port of the build system to python?
Comment 5 Jens Georg 2023-02-10 08:55:41 UTC
Sow e agree that modifying boosts build files in a recipe should be possible? If so, I will dig into this and try to come up with a solution
Comment 6 Randy MacLeod 2023-04-21 18:45:43 UTC
Moved en masse from 4.2 to 4.3 by Randy.
Comment 7 Randy MacLeod 2024-01-18 16:17:53 UTC
Do you still plan to look into this Jens?
Comment 8 Ross Burton 2024-01-19 12:03:31 UTC
Sort of related: in case anyone is interested, I've started on a b2 5.0 recipe in poky-contrib:ross/b2.

I don't know if that will solve this problem...
Comment 9 Jens Georg 2024-01-19 12:08:54 UTC
Hi, sorry,

this toppled down in priority on our side, the current plan was to get back onto Yocto topics in two weeks and start looking into this.
Comment 10 Jens Georg 2024-03-18 11:04:03 UTC
The b2 5.0 package from Ross shows the same behavior, unfortunately
Comment 11 Jens Georg 2024-03-18 11:40:28 UTC
Furthermore, while it is possible to use b2 5.0 to compile boost, it is not possible to use the b2 core inside boost then, because its too old.

I am now somewhat leaning forward that one needs to be aware that patches have to go to the build tool not boost, however unfortunate and backwards-seeming that is, because python.jam is actually part of the build tool, not boost.
Comment 12 Randy MacLeod 2024-10-31 15:09:23 UTC
Bulk move of 5.1 bugs to 5.2. -- YP bug review (Randy)
Comment 13 Jens Georg 2025-04-29 06:36:42 UTC
In my opinion this is obsolete. Misunderstanding caused by a bug in the boost recipies that was actually fixed with 0c82598d22b69d8787faa1f9fe7c2e9bc62c4cfa