Re: Disruptive changes and the next LTS 3.5 - what to aim for?
On 9/9/21 9:09 AM, Richard Purdie wrote:
Hi All,By backward compatibility do you mean allowing a layer to use one of the offending variables? if so, what is the point? How much do we help usersYou mean like in a script? Is there wide support for the changes?You mean this LF project? https://inclusivenaming.org ( Think its overly complication things) or OE/YP folks getting involved? If the master branch gets renamed, what about yocto-buildhistory, yocto-buildstats and yocto-testresults? Would master branches or tags get renamed as well? Is this part of the day's worth of work you mentioned? Would the Yocto Project enforce a renaming in all the repos they host? What about layer-index? - armin
|
|
Disruptive changes and the next LTS 3.5 - what to aim for?
Richard Purdie
Hi All,
We have a decision facing us with 3.5. There are a number of invasive issues looming on the horizon and I'm not sure exactly what the best thing to do with them is. a) Inclusive language A lot of variables potentially need renaming with varying options for backwards compatibility. Do we add compatibility for all cases. How much do we help users with migration? Is there wide support for the changes? Do we change the master branch to something else? I personally have a preference for "devel" over "main" regardless of what others are doing as it matches what it is in our case. Changing that alone is days of work for me trying to get all our automation to deal with it. I am frustrated that after lots of people saying this was important and the TSC putting a process/plan in place, the work hasn't been done. This does imply that if "we" do it, I'll get to do a lot of work on it which I have mixed feelings about. Not doing it also looks bad for the project though. b) layer.conf changes Part of the reason the LAYER* variables didn't change in the overrides changes is that not only are they not overrides in any way they're used but also that we could probably do with dropping a lot of the legacy ways layers work and adopt something easier for people to understand (e.g. the term collections is old and we have too many ways of handling priorities). I think a deeper cleanup of layer configuration is possible and desirable but it would mean dropping "features" some people are using. I don't know how much support there would be for that. Would people accept a standard layer priority for example? c) data store operational changes One of the things the new overrides changes lets us do is know definitively what is a variable and what is an override. Currently when you call d.keys(), you'd get A and A:qemux86. We could decide that only A should be shown and this could speed up certain operations due to the simplified key list. d) potential syntax removal Another option from the overides changes would be to disallow certain operator combinations. One often commented on example would be A:append:b += "c", there are others depending on how far we wanted to go with that. These should be possible to at least show errors to the user. e) potential data store internals rewrite Yet another possible move from the overrides syntax change is that it would allow us to remove the "overridedata" element of the data store into the specific variables. I have a proof of concept of this but it turns out to be really ugly code, unless we accept some user visible changes to the behaviour of the datastore (and/or remove some forms of syntax). At present I'm experimenting without making user visible changes but we do have potential decisions to make here too. f) f-strings in python code We now have a compatible python version but I'm reluctant to start changing large chunks of the code base with the risks of breaking in transitions. The more of this we take in, the bigger the risks of something being backported to older releases which causes issues. FWIW, I'm seeing signs other layers are going to start using this regardless of what the architecture list or TSCs say. I really don't want to get into a position where we have multiple "standards" for things as the current situation is bad enough. I'm therefore worried about this one a lot. Part of me wonders if we should just start allowing them and watch things unravel for older releases. g) bitbake internal changes Other things in bitbake are showing their age. The client/server model it uses really needs reworking to use async apis. tinfoil needs to adapt to handle parallel parsing if it is to scale in the future. The logging in bitbake needs a total overhaul and previous work completing, with potential user visible changes. h) merge of some currently optional functionality into the core Merging bits of reproducible builds and maybe some license/sbom handling into the core project workflows as not optional may be desirable to reduce the test matrix and the chances of people not testing codepaths with changes. i) dropping/cleaning up some core code Chunks of the license class code come to mind, there are probably other areas which could do with cleanup. There are probably more of these, these are just the handful of issues that came to mind right now. I can't help think there were some others that were discussed in the tech call on Tuesday. I'm conscious we don't want to do what python did with the 2->3 transition. Equally, I know there are a lot of things we could do with changing, not a lot of people interested in doing the work and an LTS "looming" which we may or may not want to get some of these changes into. Thoughts on how much we should be considering for 3.5 and the changes in general welcome... Cheers, Richard |
|
OpenEmbedded Happy Hour August 25 9pm/2100 UTC
Denys Dmytriyenko
Hi,
We will be having an OpenEmbedded Happy Hour on Auguest 25 for Asia/Pacific timezones @ 2100/9pm UTC (5pm ET / 2pm PT): https://www.openembedded.org/wiki/Calendar https://www.timeanddate.com/worldclock/fixedtime.html?msg=OpenEmbedded+Happy+Hour+August+25&iso=20210825T21 -- Regards, Denys Dmytriyenko <denis@...> PGP: 0x420902729A92C964 - https://denix.org/0x420902729A92C964 Fingerprint: 25FC E4A5 8A72 2F69 1186 6D76 4209 0272 9A92 C964 |
|
sysroot not able to find c library file: error: cannot open crti.o: No such file or directory
Mayank Agarwal
Hi, i am getting below errors on compiling moduleone using yocto.I am doing cross compilation and the toolchain path i am providing in moduleone makefile. /home/../../..//tmp/sysroots/x86_64-linux/usr/bin/arm-rdkmllib32-linux-gnueabi/../../libexec/arm-rdkmllib32-linux-gnueabi/gcc/arm-rdkmllib32-linux-gnueabi/6.4.0/ld:c | /home/../../..//tmp/sysroots/x86_64-linux/usr/bin/arm-rdkmllib32-linux-gnueabi/../../libexec/arm-rdkmllib32-linux-gnueabi/gcc/arm-rdkmllib32-linux-gnueabi/6.4.0/ld: error: cannot open crti.o: No such file or directory | /home/../../..//tmp/sysroots/x86_64-linux/usr/bin/arm-rdkmllib32-linux-gnueabi/../../libexec/arm-rdkmllib32-linux-gnueabi/gcc/arm-rdkmllib32-linux-gnueabi/6.4.0/ld: error: cannot open crtbegin.o: No such file or directory | /home/../../..//tmp/sysroots/x86_64-linux/usr/bin/arm-rdkmllib32-linux-gnueabi/../../libexec/arm-rdkmllib32-linux-gnueabi/gcc/arm-rdkmllib32-linux-gnueabi/6.4.0/ld: error: cannot open crtend.o: No such file or directory | /home/../../..//tmp/sysroots/x86_64-linux/usr/bin/arm-rdkmllib32-linux-gnueabi/../../libexec/arm-rdkmllib32-linux-gnueabi/gcc/arm-rdkmllib32-linux-gnueabi/6.4.0/ld: error: cannot open crtn.o: No such file or directory | /home/../../..//tmp/sysroots/x86_64-linux/usr/bin/arm-rdkmllib32-linux-gnueabi/../../libexec/arm-rdkmllib32-linux-gnueabi/gcc/arm-rdkmllib32-linux-gnueabi/6.4.0/ld: error: cannot open /lib/libpthread.so.0: No such file or directory It is not able to c library files while linking. How can pass the sysroots options in the recipe file so that it is able to c library files. Please find below the recipe file: inherit autotools SRC_URI = " \ file://example.tgz \ " S = "${WORKDIR}/example" LDFLAGS+="-L${STAGING_LIBDIR}/arm-rdkmllib32-linux-gnueabi/6.4.0" TARGET_CC_ARCH += "${LDFLAGS}" LDFLAGS += "-static-libgcc -static-libstdc++" CFLAGS += "-static-libgcc -static-libstdc++" EXTRA_OEMAKE += "SYSROOT_INCLUDES_DIR=\"${STAGING_INCDIR}\"" EXTRA_OEMAKE += "SYSROOT_LIBS_DIR=\"${STAGING_LIBDIR}\"" do_compile() { export STAGING_INCDIR="${STAGING_INCDIR}" export STAGING_LIBDIR="${STAGING_LIBDIR}" oe_runmake -C ${S} } Thanks for your help Best Regards Mayank |
|
Re: Overrides conversion plan
Martin Jansa
Hi Marco, I don't expect any layer which has separate branch for each OE release to migrate to new syntax in other branches than master. But for layers which are compatible across wider range of OE releases (e.g. dunfell, gatesgarth, hardknott, master supported in meta-browser, meta-updater, meta-qt5, meta-rust, ...) from the same branch will need to switch to new syntax and the bitbake changes like https://git.openembedded.org/bitbake/commit/?h=1.46&id=a6d5fb7554e3cf071e453db56a1e7469ac44277c enable mixing new syntax in layers like this with older syntax in e.g. dunfell branch of oe-core, meta-oe etc. Regards, On Tue, Aug 3, 2021 at 3:53 PM Marco Cavallini <koansoftware@...> wrote: On 31/07/21 23:09, Richard Purdie wrote: |
|
Re: Overrides conversion plan
On 31/07/21 23:09, Richard Purdie wrote:
On Sat, 2021-07-31 at 15:29 +0000, Peter Kjellerstedt wrote:There are releases of hardknott and dunfell currently in QA so this won't-----Original Message-----[ I am on summer vacation so I just happened to see a tweet about this. ] Hi Richard, please apologize my question but I am not sure I have a clear vision of the global impact of this new feature across the branches because the answers above are confusing me. From what I understood so far and I've see in the poky repo, the 'master' branch already has the switch done on 02/08/21 [1] I don't understand if it is planned to do the same in 'dunfell' LTS or other branches (how and when). [1] https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=2abf8a699edd513405befbd1a0eafc8f55d6b514 Thank you -- Marco |
|
Re: Overrides conversion plan
Richard Purdie
On Sat, 2021-07-31 at 15:29 +0000, Peter Kjellerstedt wrote:
There are releases of hardknott and dunfell currently in QA so this won't-----Original Message-----[ I am on summer vacation so I just happened to see a tweet about this. ] make it in until the ones after that. I understand the concern however I don't think it is reasonable to wait that long. You do have the options of pulling in the changes earlier, or back porting them and if that isn't an option, it shouldn't be that long until the next releases happen. I am trying hard to find ways to allow things to operate over multiple releases and I think we have come up with a good plan there for this change. This is not something we have ever planned or committed to supporting though. I think it is in fact dangerous as it is effectively tying the project into never changing anything, or if it does, planning changes in multiple years time which isn't in my view reasonable. I worry that the bar to making any change like this is so high as to put off anyone from ever doing it. The master branch is a development branch at the end of the day. Cheers, Richard |
|
Re: Overrides conversion plan
Steve Sakoman
On Sat, Jul 31, 2021 at 5:29 AM Peter Kjellerstedt
<peter.kjellerstedt@...> wrote: I am currently testing the change in dunfell and so far so good. If-----Original Message-----[ I am on summer vacation so I just happened to see a tweet about this. ] no issues are found support will be present in the 3.1.11 release currently scheduled for 2021/9/24 Steve |
|
Re: Overrides conversion plan
Peter Kjellerstedt
toggle quoted message
Show quoted text
-----Original Message-----[ I am on summer vacation so I just happened to see a tweet about this. ] I am sorry to say, but I think you are going too fast. AFAICT, the support for using : instead of _ in overrides is not yet in any Dunfell or Hardknott release, only on the branches. I can't speak for others of course, but at least we will not pick it up until it is included in an actual release. //Peter |
|
Re: Overrides conversion plan
Andrea Adami
On Fri, Jul 30, 2021 at 3:40 PM Richard Purdie
<richard.purdie@...> wrote: Thank you very much Martin and Richard. Cheers A.A. |
|
Re: Overrides conversion plan
Martin Jansa
On Fri, Jul 30, 2021 at 11:31 AM Martin Jansa via lists.openembedded.org <Martin.Jansa=gmail.com@...> wrote:
I forgot to mention: and today added draft PR for meta-clang as well: and I've sent some additional fixes for meta-oe, meta-virtualization to the ML. Now I'm testing meta-ros (biggest layer I use) to build with converted metadata with dunfell, gatesgarth, hardknott. If it builds I'll start comparing the images before and after the syntax change, then compare the signatures dumped with openembedded-core/scripts/sstate-diff-machines.sh. Regards, |
|
Re: Overrides conversion plan
Richard Purdie
On Wed, 2021-07-28 at 16:43 +0100, Richard Purdie via lists.openembedded.org wrote:
I think the challenge is going to be the flag day issue for master branches.I have continued to work on this and I now think we're as ready as we'll ever be with the core. I have: * submitted a section for the migration guide documenting the conversion process * increased the minimum bitbake version for OE-Core * bumped the local.conf version to require new versions of the config file * added an error to bitbake if it sees "_append"|"_prepend"|"_remove" in variable names which would suggest an unconverted layer. If you use those in function names in the datastore that was never a good idea and is no longer supported. * merged compatibility changes back to bitbake 1.50, 1.48 and 1.46 * merged the conversion script to OE-Core * merged submitted tweaks to the conversion script (thanks Martin!) * made OE-Core honister only, no longer supporting hardknott * updated converted layers to be honister compatible * converted autobuilder-helper to use the new syntax * ensured all of a-quick builds on the autobuilder * submitted patches for meta-yocto, meta-gplv2, meta-mingw and bitbake I plan to merge these various things on Monday (2nd August). After that time, unconverted layers will no longer work with master. Cheers, Richard |
|
Re: Overrides conversion plan
Martin Jansa
Yesterday I've spent some time migrating the layers I sometimes use. It's definitely not perfect, but it's useful as a starting point (I was even able to build an image with these changes). I've sent my WIP changes for meta-oe, meta-python2, meta-security repositories to corresponding MLs. And here are draft PRs for projects maintained on github: Regards, On Wed, Jul 28, 2021 at 5:44 PM Richard Purdie <richard.purdie@...> wrote: Hi All, |
|
Re: Overrides conversion plan
Richard Purdie
Hi Marco,
On Thu, 2021-07-29 at 08:50 +0200, Marco Cavallini wrote: IMHO it is important to produce a clear documentation about the newI agree it is important this is documented. I've sent a patch to the manuals to add a section to the 3.4 migration guide: https://lists.yoctoproject.org/g/docs/message/1589 Does that help? Hopefully that should start to document things and I'd welcome help in knowing what other information we need to add there. It is a little more verbose than some other migration guide sections since this one is something a lot of people will run into. Cheers, Richard |
|
Re: Overrides conversion plan
Mark Hatle
On 7/28/21 10:43 AM, Richard Purdie wrote:
Hi All,Sooner the better is my view... Thanks for all of this, I know it's going to make things better longer term no matter when it switches over to the new format. (Also making the tune-XXX a first class override makes sense!) --Mark Cheers, |
|
Re: Overrides conversion plan
On 28/07/21 17:43, Richard Purdie wrote:
Hi All, Hi Richard, thank you for your precious work. IMHO it is important to produce a clear documentation about the new features maybe providing some practical cases. Just my 2 cents, Cheers, -- Marco |
|
Re: Overrides conversion plan
Otavio Salvador
Em qua., 28 de jul. de 2021 às 12:43, Richard Purdie
<richard.purdie@...> escreveu: Given these things, I therefore propose that we should start these changesI believe your plan is good and given the new layers will work down to dunfell I see no big problems in requiring it to work on master. In fact, I think it is the most logical move as it allows master to optimize for its new format. -- Otavio Salvador O.S. Systems http://www.ossystems.com.br http://code.ossystems.com.br Mobile: +55 (53) 9 9981-7854 Mobile: +1 (347) 903-9750 |
|
Overrides conversion plan
Richard Purdie
Hi All,
I've spent quite a bit of time seeing how to progress things. I now have a script which can convert layers and seems to have reasonable success on OE-Core, bitbake, yocto-docs, meta-yocto, meta-gplv2 and meta-mingw. I've proposed this for OE-Core along with an example conversion patch for OE-Core. The current patch status is I have conversions (including to bitbake's core) in master-next branches. This nearly has q-quick builds passing on the autobuilder, there are a handful of oe-selftest cases which don't pass yet. Things do get a little more complex than I'd hoped. We use OVERRIDES in a number of interesting places, including within multilib configurations for the tune-XXX variable suffixes. I did try making the code do "fallback" variable lookups instead of expansion for tune- but I quickly gave up due to the nesting. My view is that they are being used as overrides and we should therefore recognise them as such. Over time I think the tune code can be improved to take explicit advantage of that. As such, I'm proposing we make the package variables and tune variables explicit overrides and the conversion scripts and patches above assume this. I think the challenge is going to be the flag day issue for master branches. For example, there is code in devtool and other places which knows about the override character. If we allow mixing the different syntax for master then those tools need to complicate things by referencing both characters. To try and preserve what is left of my sanity, I'm starting to think we just require layers to migrate to the new syntax to continue to work with master. The good news is that those converted layers should work with dunfell and older releases where the layer already does that with the backported bitbake syntax update. If we accept that we need to have a flag day for master use, the question is when. We could pick some data well in the future or even post 3.4 however I'm not sure this buys much and we probably may as well get on and do it. Given these things, I therefore propose that we should start these changes and require it for master, probably relatively quickly within a couple of weeks? Cheers, Richard |
|
Re: Linux 5.10 LTS "mixin" layer for Dunfell
Denys Dmytriyenko
On Tue, Jul 27, 2021 at 05:40:32PM +0100, Richard Purdie wrote:
On Tue, 2021-07-27 at 12:38 -0400, Denys Dmytriyenko wrote:Not necessarily. Providing latest LTS kernels for Dunfell also seems veryOn Tue, Jul 27, 2021 at 08:18:13AM +0100, Richard Purdie wrote:I think that defeats the idea of specific purpose layers?On Mon, 2021-07-26 at 23:51 -0400, Denys Dmytriyenko wrote:Either that, or it can hold multiple versions...All,Should the layer be called kernel-5.10 since there potentially may be other specific. For every extra year of official support for Dunfell, this can offer a new LTS kernel version, that can be selected by PREFERRED_VERSION. Creating a new branch for each kernel version seems wasteful. But I can do that as well, if needed. -- Regards, Denys Dmytriyenko <denis@...> PGP: 0x420902729A92C964 - https://denix.org/0x420902729A92C964 Fingerprint: 25FC E4A5 8A72 2F69 1186 6D76 4209 0272 9A92 C964 |
|
Re: Linux 5.10 LTS "mixin" layer for Dunfell
Richard Purdie
On Tue, 2021-07-27 at 12:38 -0400, Denys Dmytriyenko wrote:
On Tue, Jul 27, 2021 at 08:18:13AM +0100, Richard Purdie wrote:I think that defeats the idea of specific purpose layers?On Mon, 2021-07-26 at 23:51 -0400, Denys Dmytriyenko wrote:Either that, or it can hold multiple versions...All,Should the layer be called kernel-5.10 since there potentially may be other Cheers, Richard |
|