Next Yocto Project LTS - April 2022
Richard Purdie
I'm pleased to be able to announce that the project is planning to have
the April 2022 release next year be our next LTS release. This fits in with our original announced plan of 2 year cycles and recognises that the LTS has been well received by members and our community. It also aligns well with LTS releases of other projects meaning we have "co-travellers". The current dunfell LTS would be due to end at that time. There has been discussion about extending it beyond the currently planned timeframe but no agreement/decision has been made on the extra finance that would require at this time. There is also some concern about the potential pressure on layer maintainers in wider ecosystem which we plan to investigate further. By confirming this now, we're hoping to give people a chance to align strategies and plan for feature development to land into the LTS. There is a clear need for any new/experimental changes to be planned/developed now in order to ensure they're ready and stabilised for the LTS. Cheers, Richard
|
|
OpenEmbedded Developers Virtual meeting
Philip Balister
Part of the Yocto Project Summit (May 25-26, 2021), OpenEmbedded is
hosting a Virtual Developer meeting. (https://pretalx.com/yocto-project-summit-2021/schedule/) Since this will be a virtual event, we are going to try and set up the developer meeting with more structure than previous meetings. We've seeded a few topics and are looking for people to moderate them. If I know you are active in certian areas, I'll be talking to you this week. But please, we would like to get new voices involved solving some of these high level issues. We also welcome topics that matter to end users, so don't be afraid you aren't enough of a developer to participate. As we get topics better defined and have moderators signed up, we will add them to the summit schedule. The format is described on the wiki (if you need an account, sign up and message me to approve the account): https://www.openembedded.org/wiki/OEDVM_2021 Philip
|
|
Re: OVERRIDES v2
Chris Laplante
I took the occasion to check what is the mechanism of overriding.Not sure if I understand the question, but maybe you're looking for this example (given in section 3.3.1): KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" Thanks, Chris
|
|
Re: OVERRIDES v2
keydi
I see for Bitbake appends and prepends are overrides flavor.
toggle quoted messageShow quoted text
I still keep my position, generally there is no override component in appending and prepending regardless which life area is considered. Nothing get overridden by appending and prepending. Things just get appended or prepended. I see it to be unlucky these two to be treated in scope of overriding. It is misleading in case of these to talk about overriding.
-----Original Message-----
|
|
Re: OpenEmbedded Happy Hour April 28 9pm/2100 UTC
Denys Dmytriyenko
Reminder, next Happy Hour is in one day - everyone is welcome to meet with
toggle quoted messageShow quoted text
fellow developers and chat about any interesting topics over Zoom. BYOB - bring your own beverage.
On Wed, Apr 21, 2021 at 04:04:25PM -0400, Denys Dmytriyenko wrote:
Hi, --
Regards, Denys Dmytriyenko <denis@...> PGP: 0x420902729A92C964 - https://denix.org/0x420902729A92C964 Fingerprint: 25FC E4A5 8A72 2F69 1186 6D76 4209 0272 9A92 C964
|
|
Re: OVERRIDES v2
keydi
Regarding second point in my post above I see example for kernel seems to useI am also not comfortable with two first examples provided in chapter myself overrides-interface component, which however takes place in different code thus not visible in shown example yet chapter didn't presented (even short reference) in chapter prior to example presentation . That comment is obsolete.
|
|
Re: OVERRIDES v2
Denys Dmytriyenko
On Mon, Apr 26, 2021 at 12:19:58PM -0400, Trevor Woerner wrote:
On Mon 2021-04-26 @ 11:05:55 AM, Richard Purdie wrote:I, for one, really like OVERRIDES mechanism! It may not be intuitive at first,On Mon, 2021-04-26 at 11:46 +0200, Quentin Schulz wrote:I'm pretty sure Quentin is referring to me here ;-) and I'll be the firstHi all,Not sure who told you that but OVERRIDES has been around since bitbake but once mastered, it's a very powerful mechanism and, as Chris mentioned, allows doing layered (from generic to specific) alternatives very elegantly. --I believe we discussed both a square bracket operator and a dot operator. Theand that some had tried to get it removed/reconsidered back in 2015 (beenReading that agenda item, I suspect I was the one who added and discussed it Regards, Denys Dmytriyenko <denis@...> PGP: 0x420902729A92C964 - https://denix.org/0x420902729A92C964 Fingerprint: 25FC E4A5 8A72 2F69 1186 6D76 4209 0272 9A92 C964
|
|
Re: OVERRIDES v2
Denys Dmytriyenko
On Mon, Apr 26, 2021 at 05:15:31PM +0000, keydi wrote:
As _append, _prepend, _remove are special cases of the override mechanism.If to use same chapter in order to continue my point regarding intersection That was one of the reasons for 2015 discussion during OEDEM to see if _append and _prepend need to be re-implemented to not confuse with regular overrides. My personal preference is to describe things as they are. Naming stuff is-- Regards, Denys Dmytriyenko <denis@...> PGP: 0x420902729A92C964 - https://denix.org/0x420902729A92C964 Fingerprint: 25FC E4A5 8A72 2F69 1186 6D76 4209 0272 9A92 C964
|
|
Re: OVERRIDES v2
keydi
I took the occasion to check what is the mechanism of overriding.I use Bitbake user manual mentioned chapter as knowledge source to get more about override mechanism as OVERRIDE variable description in YP Reference Manual refers to that document for more details.
|
|
Re: OVERRIDES v2
keydi
If to use same chapter in order to continue my point regarding intersection of overriding and appending/prepending I don't see in example provided in bullet "Appending and Prepending:" any piece of variable original value get literally overridden. In contrary some further components get appended/prepended to original content, myself doesn't understand the word "override" this way. My personal preference is to describe things as they are. Naming stuff is also describing that stuff. In case of append/prepend description seems to be misleading, it seems to suggest non-existing behavior.
|
|
Re: OVERRIDES v2
keydi
Hi,I am also not comfortable with two first examples provided in chapter myself referred previously too. The first one, short one: why is "_nooverride = blabla" component necessary? Will variable default value not suffice? The second one, longer one: It does not include the OVERRIDES = "blabla" component. Hence, the question is this override-code complete?
|
|
Re: OVERRIDES v2
keydi
On Mon, 2021-04-26 at 11:46 +0200, Quentin Schulz wrote:Hi,Hi all,Not sure who told you that but OVERRIDES has been around since bitbake I took the occasion to check what is the mechanism of overriding. Below what myself found in Bitbake User Manual, ch. 3.3. Conditional Syntax (Overrides) "You can use OVERRIDES to ... conditionally append or prepend the value of a variable." This is the point where I wonder why overriding is discussed in context of append and prepend. Which element of appending and prepending operations has the nature of overriding other things? BR k.d.
|
|
Re: OVERRIDES v2
Trevor Woerner
On Mon 2021-04-26 @ 11:05:55 AM, Richard Purdie wrote:
On Mon, 2021-04-26 at 11:46 +0200, Quentin Schulz wrote:I'm pretty sure Quentin is referring to me here ;-) and I'll be the firstHi all,Not sure who told you that but OVERRIDES has been around since bitbake person to tell you that I don't have the best memory going, so I apologize if my poor memory causes a "fake news" incident ;-) But I left that meeting with a very distinct impression that nobody felt that bitbake's OVERRIDE mechanism was one of its best features. I thought the overall feeling was that OVERRIDES was one of the biggest stumbling blocks for newbies. Although I wasn't around when it was added, I seem to think it wasn't feature that was given much thought; there was a need for something, this was proposed, and in it went. Then, some years later, there was a feeling of "if we had known it was going to get this complicated…" I believe we discussed both a square bracket operator and a dot operator. Theand that some had tried to get it removed/reconsidered back in 2015 (beenReading that agenda item, I suspect I was the one who added and discussed it square brackets were rejected because it was already being used for tasks and PACKAGECONFIGs. Although the dot operator received a lot of support, in the end I thought it came down to the difficulty of how invasive the changeover would be (flag days etc). A good idea, perhaps, but too much inertia otherwise. Thanks for jumping in on this topic, Richard, and filling in the gaps. It's nice to get this sort of information out of peoples' brains an onto paper. Best regards, Trevor
|
|
Re: OVERRIDES v2
Christopher Larson
On Mon, Apr 26, 2021 at 8:12 AM Richard Purdie <richard.purdie@...> wrote: On Mon, 2021-04-26 at 14:44 +0000, chris.laplante@... wrote: As an alternative to just 'time', there are useful tools for basic statistical analysis for benchmarking of cli operations, such as hyperfine (https://github.com/sharkdp/hyperfine) nowadays. I always liked to think of OVERRIDES as one of the mechanisms used to implement a layered hierarchy of metadata -- *not referring to oe layers here, but conceptual ones*, whereby our metadata ranges from most generic to most specific, generic, distro, arch, machine, forced/local, which is also implemented by the order of includes in bitbake.conf, adjusted for realities (can't include local after distro since local sets distro :). Christopher Larson kergoth at gmail dot com Founder - BitBake, OpenEmbedded, OpenZaurus Senior Software Engineer, Mentor Graphics
|
|
Re: OVERRIDES v2
Richard Purdie
On Mon, 2021-04-26 at 14:44 +0000, chris.laplante@... wrote:
The perf test does include a parse speed test which is basicallyJust FWIW, much of our parsing speed pain now is in the tons of anonymousIs there a benchmark tool for measuring BitBake parse speed? I've been "time bitbake -p" with varying levels of cache being present. You can get interesting profiling data with "bitbake -P" too. Cheers, Richard
|
|
Re: OVERRIDES v2
Chris Laplante
Hi Richard,
Just FWIW, much of our parsing speed pain now is in the tons of anonymousIs there a benchmark tool for measuring BitBake parse speed? I've been digging into DataSmart. I see oe-build-perf-test but as the name implies it seems like it's for build speed testing. Thanks, Chris
|
|
Re: OVERRIDES v2
Richard Purdie
On Mon, 2021-04-26 at 11:46 +0200, Quentin Schulz wrote:
Hi all,Not sure who told you that but OVERRIDES has been around since bitbake (then oemake) was split out from openembedded which is probably around 2004. and that some had tried to get it removed/reconsidered back in 2015 (beenReading that agenda item, I suspect I was the one who added and discussed it and it was less about removing OVERRIDES and more about considering whether there was some better operator/format to clearly differentiate between a variable name and an override. It was a way to see if anyone had ideas, no great replacement was identified (but was worth asking IMO). So now, my questions:They're one of the ways OE tried to handle conditional configuration changes which are needed on a machine or policy (distro) basis and as a way of allowing customisation. I'd say on balance they've been highly successful at it. - why was it considered for removal/reimplementation back in 2015 (orNot removal, considered for reimplementation. Is there a better syntax which could be used? It is an open question, we've not identified one. - what made you decide to not go for it? Already too widely used?We'd need to demonstrate that there was an issue being solved, that there was enough of a benefit for people to take any pain of migration. The fact they are widely used is a big factor. - is there something you'd have done differently?I suspect lots of things. Specifically with overrides, I've personally wondered about whether a specific operator syntax would make sense. - what are you thoughts on OVERRIDES today?I think you might find there was actually a newly coded backend implementation of overrides around the 2015 timeframe as I quite radically changed the way the datastore worked behind the scenes. There were some user visible changes but they were minor and mostly corrections making the behaviour consistent. What changed behind the scenes was the datastore became dynamic. Previously you updated OVERRIDES and then called dd.data.update_data(). This was removed in: http://git.yoctoproject.org/cgit.cgi/poky/commit/bitbake/lib/bb/data_smart.py?id=e7ccd9071233d66afb0bc72774b0032fb8229fe4 We also changed the default on getVar to expand by default in 2016. Reading the history of: http://git.yoctoproject.org/cgit.cgi/poky/log/bitbake/lib/bb/data_smart.py may give some insight. Another big change was dependency tracking of variables allowing hash calculation for signatures. We also mandated overrides by lower case, which helps parsing as it becomes easier for the code to identify or ignore possible overrides. Basically, we needed those fixes for various reasons such as sstate hashes, or to fix parsing performance issues but we were able to make the existing APIs mostly work so we didn't change the user visible side. That removed much of the pressure to change the user visible implementation. Just FWIW, much of our parsing speed pain now is in the tons of anonymous python people keep adding, thinking little of the overhead about trying to parse it all for dependencies and run it all... Whether my presentation is selected does not matter, still curiousCheers, Richard
|
|
OVERRIDES v2
Quentin Schulz
Hi all,
I submitted a presentation about OVERRIDES, _append, +=, =. and others for YP Summit 2021 in a month. While sharing the description with some people in the Yocto community, I've been made aware that I'm missing some (history) bits about OVERRIDES. I've been told that it was added as a temporary measure/hack and that some had tried to get it removed/reconsidered back in 2015 (been given this link: https://www.openembedded.org/wiki/OEDEM_2015#Agenda) but it was already largely (ab)used? So now, my questions: - why was OVERRIDES implemented in the first place? What was it trying to resolve? - why was it considered for removal/reimplementation back in 2015 (or even earlier?)? - what made you decide to not go for it? Already too widely used? - is there something you'd have done differently? - what are you thoughts on OVERRIDES today? - is there a plan to code a new implementation of OVERRIDES or a similar mechanism? If so, what are the ideas you have currently on how to do it? (hence the clickbait title :) ) Whether my presentation is selected does not matter, still curious nonetheless :) Cheers, Quentin
|
|
Re: devtool modify docker failure
AnandJe
Hi,
I have made my yocto setup successfully. The layers I have included is: $ cat conf/bblayers.conf ${TOPDIR}/../poky/meta \ ${TOPDIR}/../poky/meta-poky \ ${TOPDIR}/../poky/meta-yocto-bsp \ ${TOPDIR}/../layers/meta-openembedded/meta-filesystems \ ${TOPDIR}/../layers/meta-openembedded/meta-networking \ /${TOPDIR}/../layers/meta-openembedded/meta-oe \ ${TOPDIR}/../layers/meta-openembedded/meta-perl \ ${TOPDIR}/../layers/meta-openembedded/meta-python \ ${TOPDIR}/../layers/meta-virtualization \ I want to work on docker source code so I thought of fetching the source code from devtool. But while I'm using devtool I'm facing an issue.
$ devtool modify --no-same-dir --extract docker-ce workspace/sources/docker ERROR: Command Error: 'sh -c 'PATCHFILE="0001-libnetwork-use-GO-instead-of-go.patch" git -c user.name="OpenEmbedded" -c user.email="oe.patch@oe" commit -F /tmp/tmps5pr6pui --author="Bruce Ashfield <bruce.ashfield@...>" --date="Fri, 6 Apr 2018 23:58:22 -0400"'' exited with 0 Output: On branch devtool Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) (commit or discard the untracked or modified content in submodules) modified: libnetwork (modified content)
no changes added to commit (use "git add" and/or "git commit -a") ERROR: Logfile of failure stored in: ${TOPDIR}/build/tmp/work/core2-64-poky-linux/docker-ce/19.03.8-ce+gitafacb8b7f0d8d4f9d2a8e8736e9c993e672b41f3-r0/devtooltmp-lnnatl98/temp/log.do_patch.27786
Is there any workaround or solution to overcome this error?
Thanks & Regards Anand
|
|
OpenEmbedded Happy Hour April 28 9pm/2100 UTC
Denys Dmytriyenko
Hi,
Please join us for the upcoming OpenEmbedded Happy Hour on April 28 for Asia/Pacific timezones @ 2100/9pm UTC (5pm EDT): https://www.openembedded.org/wiki/Calendar https://www.timeanddate.com/worldclock/fixedtime.html?msg=OpenEmbedded+Happy+Hour+April+28&iso=20210428T21 -- Regards, Denys Dmytriyenko <denis@...> PGP: 0x420902729A92C964 - https://denix.org/0x420902729A92C964 Fingerprint: 25FC E4A5 8A72 2F69 1186 6D76 4209 0272 9A92 C964
|
|