jwillikers has quit [Remote host closed the connection]
camus1 has joined #yocto
camus has quit [Ping timeout: 258 seconds]
camus1 is now known as camus
zeddii has joined #yocto
RobertBerger has joined #yocto
rber|res has quit [Ping timeout: 256 seconds]
whuang0389 has joined #yocto
<whuang0389>
why? source poky/oe-init-build-env
<whuang0389>
Error: The bitbake directory (/home/whuang/repos/tmp2/yocto/layers/bitbake) does not exist! Please ensure a copy of bitbake exists at this location or specify an alternative path on the command line
<whuang0389>
meh nvm i refreshed my shell
nerdboy has quit [Ping timeout: 255 seconds]
whuang0389 has quit [Quit: Client closed]
sakoman has quit [Quit: Leaving.]
camus1 has joined #yocto
camus has quit [Ping timeout: 265 seconds]
camus1 is now known as camus
sakoman has joined #yocto
amitk has joined #yocto
paulg has quit [Ping timeout: 276 seconds]
camus1 has joined #yocto
camus has quit [Ping timeout: 255 seconds]
camus1 is now known as camus
sakoman has quit [Quit: Leaving.]
yates has quit [Ping timeout: 255 seconds]
marka has quit [Ping timeout: 252 seconds]
Schlumpf has joined #yocto
Schlumpf has quit [Quit: Client closed]
rob_w has joined #yocto
marka has joined #yocto
zeddii has quit [Ping timeout: 246 seconds]
Neur0mante has joined #yocto
frieder has joined #yocto
goliath has joined #yocto
<mihai>
good morning!
zeddii has joined #yocto
zpfvo has joined #yocto
zyga_ is now known as zyga
zyga_ has joined #yocto
hpsy has joined #yocto
zyga has quit [Ping timeout: 255 seconds]
florian has joined #yocto
camus has quit [Remote host closed the connection]
camus has joined #yocto
LetoThe2nd has joined #yocto
<LetoThe2nd>
yo dudX
zeddii has quit [Ping timeout: 258 seconds]
zeddii has joined #yocto
<qschulz>
howdy
<RP>
morning!
<LetoThe2nd>
RP: indeed.
<qschulz>
LetoThe2nd: I see that you're working hard on your dad jokes :)
zyga_ is now known as zyga
<florian>
good morning
<LetoThe2nd>
qschulz: i am absolutely entitled to do so.
Schlumpf has joined #yocto
<Schlumpf>
Hi all, is there any chance to append or override a do_compile_prepend() command of a .bb file in a .bbappend file?
<Schlumpf>
*overwrite
<qschulz>
Schlumpf: I don't think so
<qschulz>
so your only way out (at least, whichcomes to mind right now) would be to make do_compile[noexec] = "1" and then put the content of your do_compile into a task that is put after (or before?) do_compile
<LetoThe2nd>
"yo dawg, we heard you like overrides, so put overwrites in your override.... erm, nevermind." </xzibit>
<qschulz>
you can reuse do_compile from classes (if there are any), directly within that new task if you want (e.g. cmake_do_compile)
<qschulz>
Schlumpf: you can make your _prepend override-specific if it's possible for you to modify the recipe/bbappend in which it is set
<qschulz>
for variables, you could have used _remove though not nice
<qschulz>
I don
<qschulz>
't think it exsist for tasks
<Schlumpf>
Many thanks, prepending the underlying class of the compile command did the job.
florian_kc has joined #yocto
Schlumpf has quit [Quit: Client closed]
leon-anavi has joined #yocto
Schlumpf has joined #yocto
camus1 has joined #yocto
camus has quit [Read error: Connection reset by peer]
camus1 is now known as camus
Schlumpf has quit [Quit: Client closed]
Dracos-Carazza has quit [Read error: Connection reset by peer]
Dracos-Carazza has joined #yocto
Dracos-Carazza has quit [Read error: Connection reset by peer]
<splatch>
LetoThe2nd: are you dad now?
<LetoThe2nd>
splatch: "now".. since more than 7 years already.
Dracos-Carazza has joined #yocto
<splatch>
LetoThe2nd: guess I am too late to send gratulations ;-)
<LetoThe2nd>
splatch: heh, somewhat, yeah.
<splatch>
anyhow, I will throw a question which is somewhat close and far from yocto itself. OTA. I noticed there are multiple ways of doing it, there is rauc, mender, swupdate and others which handle it. Anyone has any remarks related to above or other things which would like to share? I am currently working with swupdate, but I am not entirely happy with it.
Dracos-Carazza has quit [Ping timeout: 258 seconds]
<rburton>
an old colleage was very happy with swupdate for their setup
<splatch>
rburton: can you refer if it was microcontroller, embedded/gateway device, ipc or something else?
<rburton>
handheld device
<qschulz>
splatch: I think it would make sense to expose the reasons why you're not happy with swupdate
Schlumpf has joined #yocto
<splatch>
qschulz: yeah, I think these are mainly on my end, yet I find it hard to fix. I see swupdate documentation quite sparse and sometimes written with assumption that reader knows the tool. In my case it is rather opposite. Comparing documentation itself, swupdate seems to be quite low in comparison to others. There were also some technical challanges such as USB update not working out of the box with warrior.
<splatch>
It did improve lately, yet I had to sacrifice fair amount of time to trace it down. Now I am stuck with a failing update which seems to be related to update image contents. As far I can find description how to verify signatures of signed files I can't find any pointers how to inspect image itself (beside format description), which I would assume kind of semi standard task.
<splatch>
I can't talk really about lover level stuff (ie bootloader update) cause I am stuck with things way above of the advanced features.
<LetoThe2nd>
splatch: well its a matter of perspective. swupdate is a classic "scratch your own itch" open source project, whereas mender is a commercial product.
Dracos-Carazza has joined #yocto
<LetoThe2nd>
i think rauc is somewhere in between
<ejoerns[m]>
splatch: despite these update frameworks solve many pain-points already, I would bet you run into issues during integration with all of them. Thus I would not take this instantly as a hint to switch the framework. Having all components working tightly together in a reliable way is probably almost all times at least a little bit of pain ;)
<splatch>
yes, I see this difference very well, I am well aware of such thing cause I do work with adoption of another oss project > product deployment on top of gardware
<splatch>
it looks like never ending story, especially when rolling updates are involved ;)
<qschulz>
splatch: just FYI, meta-swupdate is regularly updated, even for old releases of Yocto IIRC
<ejoerns[m]>
LetoThe2nd: no RAUC is fully open source, too ;)
<qschulz>
I had a look at thud support a few months ago and it was supporting the latest version of swupdate
<qschulz>
so if there are bugs in swupdate, it's pretty easy to stay up-to-date (at least on the side of Yocto :) )
<ejoerns[m]>
qschulz: not sure if you should stick to thud when being able to update and caring for a minimus of security... ;) its EOL for some time now
<splatch>
that's quite good message since I do yocto stuff once a year (July-August)
<LetoThe2nd>
ejoerns[m]: i wasn't referring to the license model, but the different mission backgrounds.
<splatch>
I believe main battle goes not over the tool but service which can be sold on subscription basis. This is clearly what mander does, not sure about rauc, but there is one more tool I noticed which does pretty much the same
<splatch>
right, it is a blynkkk
<ejoerns[m]>
LetoThe2nd: I would expect both to have the same mission background ;) but would be interesting to hear how you perceive this difference :)
<LetoThe2nd>
ejoerns[m]: "both" when there are already three things mentioned? ;-)
leon-anavi has quit [Remote host closed the connection]
<ejoerns[m]>
splatch: yes, mender has both an open source and a supscription part. And it focuses on deployment / hosting services which swupdate and RAUC does not. The full capability of mender you will probably only get with the paid service. but you could also use their server infrastructure and use a custom update client (at least theoretically)
<ejoerns[m]>
LetoThe2nd: To my understanding the pool of 'fully open source' was already shrunken to swupdate + RAUC ;)
leon-anavi has joined #yocto
<qschulz>
ejoerns[m]: not my problem anymore :) (re: EOL)
<splatch>
ejoerns[m]: at scale I am currently are I am far from looking for paid options (I pay with own pain if necessary), if I would have 1000s of devices then yes, their model would simplify my life. Since I expect 10 units deployed this/next year I will rather stay with USB or manunal update.
<splatch>
what I actually liked in mender way was clear separation of update steps and "hooks" which you in theory could get into with scripts and so on. For swupdate I do see pre/post hooks alone and nothing more.
<qschulz>
splatch: you can write your own handlers in swupdate, so feel free to implement what you want for your scripts ;)
<LetoThe2nd>
ejoerns[m]: hehe yes, but i'm not gonna do the OSS zealot thing there. so i am purely looking at the background/mission statements, which sound to me a lot like: 1)swupdate: scratch-your-own-itch by stefano. others are invited to use it, but its not the main goal. 2) rauc: make-a-product-to-solve-own-problem by ptx. it being a product means that it being used by others is at least encouraged. 3) mender: create a product and sell
<LetoThe2nd>
it. the OSS part seems to be merely a door opener/sales argument.
<LetoThe2nd>
ejoerns[m]: please note that this is specifically my own personal perception of things, which might or might not be correct.
<splatch>
there are cases where oss is in theory needed to sell since recipient can think of switching vendor, it barely happens but public/military sector could favor such a way
Neur0mante has quit [Ping timeout: 246 seconds]
<LetoThe2nd>
"it all depends." (TM)
<splatch>
qschulz: first, I need to get two or three steps 1) understand the tool 2) understand its apis 3) understand (read as learn) C or Lua. Then I will be set!
Neur0mante has joined #yocto
<ejoerns[m]>
LetoThe2nd: thanks for this insight :) I don't want do comment or rate this as I am not really an independent observer but it's interesting to hear ;)
<splatch>
now, as I did engage some of you I will throw my trouble :)
<splatch>
uname returns different result than modules packaged with update image, update image is feed from .ext4.gz or direct.p2.gz (another invention through custom patch to wic), both result in same trouble. Missalignment of kernel version and modules.
<splatch>
my build/layer is configured wih PREFERRED_VERSION_linux-intel="5.10%" and PREFERRED_PROVIDER_virtual/kernel = "linux-intel"
<LetoThe2nd>
ejoerns[m]: :)
<splatch>
I can't find really any references to 4.19.80, this is really an previous system release running on the device.
<splatch>
do I have some boot trouble or something?
<splatch>
first line of my dmesg says [ 0.000000] Linux version 4.19.80-intel-pk-standard (oe-user@oe-host) (gcc version 8.3.0 (GCC)) #1 SMP PREEMPT Mon Jul 13 12:50:56 UTC 2020
<splatch>
so it is wrongly booted
<ejoerns[m]>
splatch: you could inspect the image you build and then packed into the update to see if that contains the expected artifacts. This will probably tell you if its a build-system issue or if something during the update went wrong
<splatch>
the more I look into it the more I am convinced it is my mistake, cause swupdate does the flashing and does switch partitions just fine, what goes odd is a boot argument.
<LetoThe2nd>
splatch: so you are having a "boot argument" muahahahaha
* LetoThe2nd
feels mightly proud to get the dad joke thing done so well!
<splatch>
LetoThe2nd: so, there is a thing with a boot, my first image did not have fsck enabled by default and now I'd like to fix it. I've tried to enable it via kernel argument coming from wic bootloader options. While it will fix issue with new installations where I flash image I would need to do a bootloader update with older installations. I found a way to compile in fsck into kernel commandline options, yet I
<splatch>
am not certain what happens later with it.
<dvorkindmitry>
may I set PACKAGE_FEED_ARCHS in the machine config, not in distro (I have MC: configuration)?
<splatch>
.. looks like I will have to update bootloader anyway..
zpfvo has quit [Ping timeout: 265 seconds]
jwillikers has joined #yocto
camus1 has joined #yocto
camus has quit [Ping timeout: 246 seconds]
camus1 is now known as camus
tnovotny has joined #yocto
zpfvo has joined #yocto
Schlumpf has quit [Quit: Client closed]
<v2d>
hi all -- does a multiconfig configuration file takes precedence over a machine configuration file, or the opposite?
kayterina has joined #yocto
<LetoThe2nd>
v2d: best to think of a mc as "an additional local.conf customization"
<LetoThe2nd>
v2d: hence, it technically can overwrite anything that the machine config sets, but its a rather bad practise i'd say.
paulg has joined #yocto
<v2d>
LetoThe2nd it seems like a good idea to isolate customer configuration such as defining a different TMPDIR and tweaking the default image (for different keys or password for example)
Schlumpf has joined #yocto
<LetoThe2nd>
v2d: "it depends" (TM) (as usual)
<v2d>
so you can build mc:customer:hw-default-image or something.We'll see how it goes
<LetoThe2nd>
who cares about real support when we can have fun with crazy names instead?
<JPEW>
LetoThe2nd: Next time I need to name something, I'm going to ask you.... I find it one of the hardest parts :)
pinpox has joined #yocto
<LetoThe2nd>
JPEW: yes please!
* paulg
wonders what happened to LetoThe1st
<JPEW>
As it happens, our company even has a mild fascination with umlauts ;)
<v2d>
I'm currently using kas, but I'll keep an eye on whisk
<LetoThe2nd>
paulg: according to my persona folklore, he was my gradfather and died while carrying out a suicidal assault on baron wladimir harkonnen, shortly after sending my grandmother and father off into the desert to seek refuge with the fremen.
<JPEW>
Maybe I should start on those books.... I ran out of my usual reading fodder
<LetoThe2nd>
JPEW: unless you are into a somewhat weird scifi-politics conglomerate which decays into weird musings on violence, drugs and various "adult" mindwashing techniques, don't do.
<JPEW>
LetoThe2nd: Ah... maybe I'll just watch the movie instead then :)
<LetoThe2nd>
JPEW: well my nickname has a kind of personal history, but in a nutshell, the character is a 3500year old sandworm, god emperor of the known universe and quite the asshole. felt appropriate.
<paulg>
Spoof sci fi of the 1990s where they go on a killing spree of giant sandworms.
<LetoThe2nd>
sounds perfectly sensible to me.
<RobertBerger>
@LetoThe2nd: Oida. A much more interesting question is why LetoThe2nd is not called LetoThe3rd. The answer is here: http://www.faqs.org/faqs/sf/dune-faq/part1/
dlan has quit [Remote host closed the connection]
<LetoThe2nd>
RobertBerger: little to add.
shoragan has quit [Ping timeout: 272 seconds]
rob_w has quit [Quit: Leaving]
ant__ has joined #yocto
<dvorkindmitry>
may I set PACKAGE_FEED_ARCHS in the machine config, not in distro (I have MC: configuration)?
<JPEW>
RP: I just send the oe-core patch to add the command line compression tools, which should allow the bitbake patch to add the compression classes to be added also
<override>
has anyone here setup docker on osx and be able to mount the usb port for a dev boards?
<RP>
JPEW: cool, thanks. I should queue some tests
<RP>
JPEW: although I guess we'll need a new buildtools first and upgrades to the workers (and docs updates)
<JPEW>
RP: Ya, probably
angolini has joined #yocto
shoragan has joined #yocto
<manuel1985>
This is totally offtopic, but I had registered manuel1985 on NickServ on Freenode. Now NickServ tells me that username is no longer registered. I was using it at least once a week. Did other peoples nicknames get unregistered as wel?
<LetoThe2nd>
manuel1985: freenode is dead. thats it.
<JPEW>
RP: Ok, I verified that pzstd output is the same regardless of the number of threads used, so that's good. I think I misunderstood the way it does parallel compression
<zeddii>
manuel1985: yah. they did that to everyone (as near as I could tell). I didn't even bother re-registering mine
Neur0mante has quit [Ping timeout: 246 seconds]
<manuel1985>
zeddii? wtf? Seriously? I was under their impression their new owner would like to keep the freenodes market value = user count high (for whatever he intends to do with Freenode), and that runs totally contrary to that. Must have lost his mind.
<manuel1985>
Didn't re-register either. In the meantime, all channels I attend have higher user count on libera.chat than on Freenode. Not going to sabotage that by staing on Freenode.
<JPEW>
kanavin: Nice. Does it use parallel compression?
<kanavin>
JPEW: yes
<qschulz>
JPEW: are you RTFM'ing me 😱
<qschulz>
(you would be right :) )
<kanavin>
JPEW: it does not use parallel decompression, but even then it's very quick - I'm actually unsure how much pzstd would help here
<JPEW>
kanavin, RP: Although I think there might be repro issues if different distros have different default compression levels... I wasn't sure if I should be explicitly forcing a compression level instead of letting is use the default
<kanavin>
JPEW: rpm can set both compression level and number of threads to use explicitly
<kanavin>
for zstd
<kanavin>
JPEW, RP setting the compression level explicitly is important, as there is a tradeoff between compression speed vs artefact size to be made
<JPEW>
kanavin: Ok, I'll rework my patch to do that.... I was leaning that way anyhow
<kanavin>
JPEW, but on the other hand, the lower levels are *very* quck
<kanavin>
an order of magnitude faster than e.g. xz
<kanavin>
try on a large data set, several gigs or so!
<JPEW>
kanavin: Ya. I'm warming up to zstd as one of the best general purpose compressors. It has quite a wide range of speed/size tradeoff
<kanavin>
JPEW, I think we should use zstd throughout yocto
<JPEW>
kanavin: Almost as fast as lz4 on the one hand, but can get really small if you take the time
<kanavin>
sstate, packages, and the SDKs
<JPEW>
Someone was working on zstd for sstate
<kanavin>
with disk storage and network speeds growing much quicker than CPU speeds, I think it's better to opt towards large file sizes and faster builds/installs
<JPEW>
kanavin: Ya, that's what my goto has been lz4 in the past
<kanavin>
installing an SDK in 10 seconds instead of 2 minutes is awesome (yes, I verified)
<kanavin>
making do_populate_sdk complete in half the time is great too (verified that one as well)
camus has quit [Ping timeout: 255 seconds]
camus has joined #yocto
roussinm has joined #yocto
dlan has joined #yocto
sgw has quit [Ping timeout: 252 seconds]
sgw has joined #yocto
tnovotny has quit [Quit: Leaving]
ant__ has quit [Ping timeout: 245 seconds]
dev1990 has joined #yocto
<yates_home>
ok i finally got my QA problems fixed
<yates_home>
it was NOT just matter of setting FILES_${PN}
dlan has quit [Remote host closed the connection]
<yates_home>
thanks rburton et al. for your help
<qschulz>
yates_home: well, what was it then :)
kayterina has quit [Remote host closed the connection]
* RP
has been playing making a "defval" override namespace which the += =+ and = operators operate within, a weakval namespace for ??= and seeing if that could be used as a migration pathway to improve the syntax consistency
<fray>
witht he names spaces it would eval weak then def (or def and if defined not weak) right?
<RP>
fray: def would override weak, yes
<RP>
the names are just for the experiment. Sadly this thing is far from simple and doesn't even pass parsing
<JPEW>
RP: So, `FOO += "bar"` is syntactic sugar for `FOO_defval_append = " bar"` ?
dlan has joined #yocto
Schlumpf has quit [Quit: Client closed]
<RP>
JPEW: yes, exactly
<RP>
the trouble is I think the code needs to handle XXX_append = and XX_append_YYY = as not defval :)
<RP>
There is some idea in my mind trying to escape here but the code isn't working and I think I'm losing track of the original objective :/
<RP>
Taking this to a second level of crazy, there could be a defval-recipe, defval-bbclass, defval-conf or similar so the context of the expressions becomes controlled by overrides too
<JPEW>
I think I'm oversimplifying this, but does that make defval and weakval weaker overrides?
<RP>
JPEW: effectivelu
<JPEW>
So there's essentially no such thing a "bare" variable (one with no overrides)
<RP>
JPEW: in that model, correct
<JPEW>
RP: I don't understand the comment about XXX_append and XXX_append_YYY
<RP>
It struck me that we were always fighting for the right ordering with ?= = and ??= and yet we have an extensible ordering model with overrides
<JPEW>
RP: Ya, I was (naively?) thinking you could add "defval" and "weakval" to overrides and make the parse translate += et. al. to other syntax as a simple test
<JPEW>
add to OVERRIDES that is
<RP>
JPEW: that is exactly what my test code does! :)
<RP>
JPEW: XXX_append becomes XXX_append_defval in my code
<JPEW>
When you do "XXX_append += " or on purpose?
<RP>
then worry about what happens to OVERRIDES_append as I didn't inject the default OVERRIDES as OVERRIDES_defval
<RP>
JPEW: I made it happen on any = operator which is now clearly a bad choice
<RP>
(ignoring flags)
<JPEW>
Ah, ya. I would have not expected it to apply to any operator.... but I can see how teasing out when it should apply to defval and when it should not would be difficult
<RP>
JPEW: I think I have a better idea now!
<JPEW>
Presumably, you want `FOO = "bar"` => `FOO_defval = "bar"`, but `FOO_append = "bar"` should not become `FOO_append_defval = "bar"`?
<RP>
JPEW: right
<RP>
I think the other problem is where I'm intercepting this, i.e. in the ast rather than in setVar where some knowledge of what is going on is lost
<JPEW>
RP: Ya, I kinda like it there better though, if += is it really supposed to be just a syntatic sugar
<RP>
Also, FOO_override = bar shouldn't become FOO_override_defval and that is probably the deal breaker as we don't know all overrides in advance
<JPEW>
RP: Right... I suppose you'd have to use the "this might be an override?" logic of lower case vs upper case?
<RP>
JPEW: for processing at this level it becomes totally impractical
<JPEW>
for what reason?
<RP>
JPEW: we normally defer this to getVar time but with these code changes you'd have to inject all possible combinations in and then determine later
<JPEW>
RP: becomes some overrides are overrides and some are operators?
<JPEW>
And the parsing code can't really tell which is which?
<RP>
JPEW: effectively, yes
manuel_ has joined #yocto
manuel_ has quit [Client Quit]
<RP>
I wish we could require a change to the metadata to mark overides
manuel1985 has quit [Ping timeout: 255 seconds]
<JPEW>
RP: Or use something other than "_" to separate overrides
<JPEW>
Something dedicated
<RP>
JPEW: right, that is what I mean by mark
<JPEW>
RP: Ah, ok.
<RP>
well, one possible result of the idea
<fray>
at one of the YP meetings we'd talked about ":" or "::" but that got shot down.. "we don't want to look like...."
<RP>
do_install{native} = "xxx" ?
<RP>
gets fun with do_install_native_append_poky_pn-lttng = "" though
<fray>
my nit-picking worry about {} it looks a lot like [] ...
<fray>
but ya, the multiple overrides with operators mixed in is a big issue
zpfvo has quit [Quit: Leaving.]
<RP>
do_install{native} += {poky} {pn-lttng} = ""
<RP>
not good :)
<fray>
that looks like a parsing nightmare
<RP>
fray: probably easier than what we have today!
<fray>
I was referring to machine and human parsing
ant__ has joined #yocto
leon-anavi has quit [Quit: Leaving]
florian has quit [Quit: Ex-Chat]
florian_kc has quit [Ping timeout: 255 seconds]
nerdboy has joined #yocto
nerdboy has joined #yocto
nerdboy has quit [Changing host]
champagneg has quit [Quit: WeeChat 2.3]
nerdboy has quit [Client Quit]
nerdboy has joined #yocto
nerdboy has quit [Changing host]
nerdboy has joined #yocto
gchamp has joined #yocto
frieder has quit [Remote host closed the connection]
v2d has quit [Ping timeout: 246 seconds]
nerdboy has quit [Ping timeout: 255 seconds]
<yates_home>
qschulz: sorry, just saw your query. give me a few and i'll post it
<yates_home>
is the process by which the output from one recipe is separated into multiple packages called "package splitting"
zyga-mbp has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<yates_home>
?
zyga-mbp has joined #yocto
<yates_home>
i do not know why it is not stated in the docs or the bitbake qa check error output that you might need to use something other than FILES_${PN} if the recipe is "packaged-split".
goliath has quit [Quit: SIGSEGV]
florian_kc has joined #yocto
<yates_home>
or have i mis-identified the issue(s)?
<yates_home>
what i have now "works" at least
zyga-mbp has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<yates_home>
rburton: i was able to get that machine_dict info from the binutils
<JPEW>
RP: I was thinking something like: FOO.native.append
<kergoth>
RP: Can we avoid even the possibility of the difference between _override_append and _append_override in your work on this? That's a long standing annoyance that we should be able to get rid of by changing to this method of lazy evaluation, in theory
* kergoth
back from 3 week road trip vacation, 4 days of driving 8 hours to get there, and then again to get home :)
<kergoth>
I'm sore now
dmoseley has quit [Ping timeout: 252 seconds]
<RP>
kergoth: that kind of trip sounds painful!
<RP>
JPEW: hmm, possible
<RP>
kergoth: those two cases mean two different things and we have code which can use either. We could certainly block one of them at the parser level if we wanted
<RP>
JPEW: I don't think we're in a position to write something like that yet :/
<RP>
(since what I have doesn't really work)
<JPEW>
Ya, I wasn't trying to be official... just trying to understand the conversation (if the Wiki isn't a good spot, somewhere else would be fine)
<RP>
My hope was to be able to move to a more consistent model where things are all deferred rather than the current mix of deferred an immediate
<RP>
JPEW: I tweaked that table for how it needs to operate
<JPEW>
RP: Ah, I see why that is really complicated
<kergoth>
I think "Append "bar" to value of FOO_o if o is in OVERRIDES
<kergoth>
" should be FOO, not FOO_o, yes?
<RP>
kergoth: yes, correct
dmoseley has joined #yocto
<JPEW>
kergoth: I think so. I'll fix it
<kergoth>
I'd love to see an override syntax so FOO{o} is just another set of defval, just a conditional one, and FOO{o} += is no different than FOO_append_o.. but that'd likely be a later extra unless the new syntax is required otherwise. FOO_o_append vs FOO_append_o is a common source of confusion. but could only fix that with a new syntax since it'd change the semantics :)
<kergoth>
probably not worth doing now unless we already break to a new opt-in syntax
<kergoth>
I wish things weren't always so complicated :)
<kergoth>
hard to make any changes without unforeseen consequences
<RP>
kergoth: it might be worth hacking the parser to warn on FOO_o_append and see how many cases there are, see if we could just remove them all
<JPEW>
RP, kergoth: Is the idea that `FOO_o += "bar"` is preferred over `FOO_o_append = "bar"`?
<kergoth>
could be a good idea regardless
ecdhe has quit [Ping timeout: 252 seconds]
<RP>
JPEW: the idea is that appending to an overridden variable is likely user error on the most part
<kergoth>
if every operation is deferred, _append/_prepend would be redundant except that they'd have to happen last for compatibility, yeah?
<kergoth>
I feel like it's harder to wrap your head around "FOO_o = 'bar'" collapses later since we had to deal with ordering than to make it an operation against FOO right away, but we can't do that without knowing the overrides up front
<kergoth>
s/collapses/collapsing/
<RP>
kergoth: the idea would be to make some of the operations effectively redundant and hence simpler, yes
<RP>
I'm struggling to spot <override>_append usage in OE-Core but one I did spot: meta/recipes-support/gmp/gmp_6.2.1.bb:EXTRA_OECONF_mipsarchr6_append
* RP
suspects that line is just plain wrong
<JPEW>
Maybe in that case, but I'm a little skeptical that FOO_o_append is always a bug
<RP>
JPEW: It isn't always but can you find real world use?
<JPEW>
Probably not with append, but probably with +=
<JPEW>
*Challenge Accepted!*
<RP>
+= is a totally different thing
<RP>
this is one of the problems :/
<JPEW>
different because it is immediate?
<RP>
it only applies to the base non overridden value and it can be "unset"
<kergoth>
I think just because there's a real world use doesn't necessarily justify the existence of it, there are often other approaches that'd do
<RP>
kergoth: I'm just trying to see if there is actually any!
<JPEW>
OK, what's the difference between `FOO_o_append = " bar"` and `FOO_o += "bar"`
<kergoth>
that's a good first step, yes :)
<RP>
JPEW: in the new world or currently?
<JPEW>
Both
* JPEW
I should probably try it instead of asking
<RP>
JPEW: the issue is that FOO_o_append persists indefinitely whilst the latter is unset by FOO_o = "y"
<JPEW>
RP: Ah, right. And in the new world?
<RP>
JPEW: implementation of defvar dependent
<RP>
The question is whether we're trying to get the existing metadata to parse correctly or not
* JPEW
updates the stable with my understanding
<JPEW>
Ugh I cannot type today. I updated the *table*
<RP>
I was hoping we could move to a deferred model and then update syntax to adapt and simplify but I'm starting to think we probably have to break the metadata :(
* RP
wondered where the ponies came from :)
<paulg>
I was holding out for unicorns.
<kergoth>
Hmm, it is tempting to just drop support for _append/_prepend with the switchover and sidestep the issues, but then again, if we're going to break format compatibility, it'd be worth thinking about any other long standing issues with the format while we're at it
<RP>
JPEW: tweaked it
<kergoth>
I feel like the user's intention behind FOO_o +=, FOO_o_append, and FOO_append_o are all really the same, just the mechanism and implementation details vary in ways that tend to confuse, even if those of us who understand those details are able to leverage them in various ways.
<RP>
kergoth: agreed. I suspect we need to look case by case at changes though
<JPEW>
kergoth: It depends I think. If it is purely syntax changes, we might be able to implement a new parse, but keep the datastore etc.
<RP>
kergoth: right, exactly :/
<JPEW>
RP: FOO_o_defvar makes my head hurt :)
<RP>
JPEW: you should see what this sample code did to the metadata
<RP>
I think this is going to go beyond syntax changes, I'm not sure we can avoid that :(
<RP>
kergoth: but basically you're right, we need to simplify the X ways of doing this into something simpler
dmoseley has quit [Ping timeout: 255 seconds]
dmoseley has joined #yocto
<kergoth>
Hey, I wonder if this would be better or worse thant he proposed {} approach: `FOO = "bar" if o` or `FOO = "bar" if o in OVERRIDES`. it'd align with the ability to define an override if block
<kergoth>
s/approach/syntax/
nerdboy has quit [Ping timeout: 252 seconds]
<kergoth>
proposed is a strong word for what's essentially brainstorming, but just a random other idea :)
<RP>
kergoth: if idea of multiple overrides variables makes my head hurt
<kergoth>
it is common for new users to go 'why isn't this just an if statement?' after all :)
<kergoth>
yeah, i'd say probably avoid that complecation. just 'if a' or 'if a and b'
* kergoth
shrugs
<RP>
its definitely food for thought
<RP>
JPEW: can you change proposed to brainstorming on that wiki page title just so that people don't get confused without the context here?
<kergoth>
That's a good idea, make it clear it's not an official proposal
<paulg>
RP, zeddii - seen any reports about qemu stalling on kernel reboot? I just reproduced it on vanilla yocto, using slightly older v5.10.43 ; can still get to qemu console, so qemu isn't completely borked. ; using the Ubuntu qemu binary and identical cmdline+images and the issue goes away.
<RP>
paulg: we've seen stall issues, some of them at poweroff
<kergoth>
RP: are you going to keep the behavior where FOO = "bar" would blow away existing pending +=/=+, or change those semantics such that `FOO = "bar"` updates the defvar and doesn't clear pending operations of any kind, but add your previously proposed command to do that explicitly, so that intention is explicit and clear? I rather like the latter
<RP>
paulg: I think I closed the bugs blaming the rcu stall
<kergoth>
if the latter, could we avoid the need for ??= at all?
<paulg>
nothing like that AFAIK ; perfectly normal shutdown ; last msgs seen is...
<paulg>
and then it just sits there sulking and pining for the fijords.
<RP>
kergoth: I'm really tempted by the latter too, I like the idea a lot. I just worry about how we migrate
<kergoth>
Hmm, can we check the current metadata to figure out where we rely on that behavior?
<RP>
paulg: does sound like some of the shutdown issues we've seen but it was never reproducible
<kergoth>
probably could in theory..
<RP>
kergoth: probably in theory but I suspect we rely on that a lot
<RP>
kergoth: I found even the quilt-native recipe does fun stuff with overrides
<RP>
well, append and ordering
<RP>
kergoth: it wants to keep the do_configure_prepend and do_configure_append but change do_configure only for class-native :)
<paulg>
"shutdown -h now" works fine, and "runqemu nographic" falls out the bottom as expected.
<kergoth>
oof
<RP>
kergoth: its amazing how much encode the behaviours into the metadata :(
<RP>
paulg: hmm, don't know I'm afraid
<kergoth>
It really is. I wish we could more directly state what the recipe wants without having to always delve into the *how* of what bitbake is doing
<paulg>
RP, thanks -- I'll continue looking at it ; see if I can figure it out.
<kergoth>
That's part of why I've wondered about a python-based plugin mechanism. interact with actual python apis to change behavior when needed, outside the limitations of the format, so the actual metadata can focus on the what, not the how
<JPEW>
kergoth: It might useful to show what you would want to the syntax to actually look like
<JPEW>
kergoth: Having worked in a build system where you can "do whatever you want" with python (waf) I do not recommend it
<JPEW>
(maybe that's not what you had in mind, though)
LetoThe2nd has quit [Quit: Connection closed for inactivity]
<kergoth>
Eh, that's part of the issue, I don't think anyone knows exactly what we'd like to see, just what we don't like about what we do now :)
<RP>
What could work might be a new immediate directive which says "parse this file from here using this parser version"
<RP>
which would then allow us, file by file to move to a new format, assuming we can put things into the datastore in a way which is backwards compatible
<kergoth>
Yeah, I thought about that too. Then we can avoid the need for a different extension or hard break, but it'd complecate the parsing *and* metadata processing
<kergoth>
probably better than the alternatives, though
<RP>
it would also allow us to change the meaning of operators
<JPEW>
RP: Would a new extension be easier (".bb2")?
<RP>
JPEW: what is worrying me is things like inheriting classes and inc files
<RP>
this way you say explicitly which parser to use for a file and the way the parser works, it could probably be quite happy with that
<JPEW>
Ah, right
<RP>
e.g. if you want to use an OE-Core bbclass in v2 with metadata in a layer using v1
<JPEW>
In the regard, I think it pretty much has to be a purely syntatical change... you can't change the datastore too much and still have it work correctly
<kergoth>
How will operations be applied when they're mixed and matched? What happens if a recipe inherits a class that uses the old syntax, or vice versa?
<RP>
kergoth: directive in the class would switch to the new version
<RP>
so basically the parser would change state for each file to v1 until told otherwise
<RP>
JPEW: I think you could do more than syntactical change with this
<RP>
e.g. in v2, += and _append could be the same
bunk has quit [Ping timeout: 246 seconds]
<JPEW>
RP: Right, but that's changing how the AST behaves, not how the datastore is used?
<RP>
so the way it maps to the datastore would be dependent on the mode the parser was in
<RP>
JPEW: the behaviour of the datastore isn't really the problem
<RP>
the problem is wanting to simplfy the syntax
<JPEW>
Right, ya. That's what I was meaning by "syntatical changes"... you use the same datastore and populate it differently. Perhaps the wrong word
<RP>
It does depend on where you look at it from :)
LetoThe2nd has joined #yocto
bunk has joined #yocto
<kergoth>
RP: defaulting each file to v1 until explicitly opting in does sound like it'd work well. i imagine in the long term we'd switch the default to avoid needing extra boilerplate in every file indefinitely though :)
<RP>
kergoth: or use the file extension too maybe?
<kergoth>
could be worth considering the .conf vs .inc/.bb/.bbclass divide too, either now or later. the difference seems silly in retrospect. also '.conf' doesn't imply bitbake directly, as an extension
nerdboy has joined #yocto
nerdboy has joined #yocto
nerdboy has quit [Changing host]
<RP>
kergoth: I do think we could make better use of that distinction at times...
camus has quit [Read error: Connection reset by peer]
camus1 has joined #yocto
camus1 is now known as camus
Guest46 has joined #yocto
Guest46 has quit [Client Quit]
nerdboy has quit [Ping timeout: 268 seconds]
<LetoThe2nd>
is there any trick/shortcut to run -c testimage on a slirp connection?
camus1 has joined #yocto
camus has quit [Ping timeout: 258 seconds]
camus1 is now known as camus
zyga-mbp has joined #yocto
amitk_ has joined #yocto
florian_kc is now known as florian
florian_kc has joined #yocto
amitk has quit [Ping timeout: 255 seconds]
florian has quit [Ping timeout: 252 seconds]
zyga-mbp has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
troth has quit [Quit: Leaving]
troth has joined #yocto
florian has joined #yocto
florian_kc has quit [Ping timeout: 255 seconds]
nerdboy has joined #yocto
nerdboy has quit [Changing host]
nerdboy has joined #yocto
goliath has joined #yocto
nerdboy has quit [Ping timeout: 268 seconds]
camus1 has joined #yocto
camus has quit [Ping timeout: 272 seconds]
camus1 is now known as camus
camus1 has joined #yocto
camus has quit [Ping timeout: 265 seconds]
nerdboy has joined #yocto
nerdboy has quit [Changing host]
nerdboy has joined #yocto
camus1 is now known as camus
dev1990 has quit [Quit: Konversation terminated!]
hpsy has quit [Ping timeout: 255 seconds]
<splatch>
qschulz: out of curiosity, do you know a recipe with swupdate + grub and switchable bzimage as this is root cause of my issue. The bootloader uses bzimage which is shipped with initial install (4.19). I found an example of tanowrt which does it by using two additional parititions and switching of bzimage partition together with rootfs. I traced also homeassistant which rely on rauc+buildroot and does
<splatch>
dynamic remounting. Finding something in between would be very helpful.
warthog9 has quit [Ping timeout: 252 seconds]
nerdboy has quit [Ping timeout: 245 seconds]
camus has quit [Ping timeout: 258 seconds]
camus has joined #yocto
warthog9 has joined #yocto
jwillikers has quit [Remote host closed the connection]
LetoThe2nd has quit [Quit: Connection closed for inactivity]
camus has quit [Remote host closed the connection]