*** brazuca <brazuca!~Guest14@2804:7f4:3590:6971:3045:4501:957f:c55d> has quit IRC (Ping timeout: 252 seconds) | 00:07 | |
*** GNUmoon2 <GNUmoon2!~GNUmoon@gateway/tor-sasl/gnumoon> has quit IRC (Ping timeout: 268 seconds) | 00:07 | |
*** GNUmoon2 <GNUmoon2!~GNUmoon@gateway/tor-sasl/gnumoon> has joined #yocto | 00:08 | |
*** Guest1422 <Guest1422!~Guest14@2804:7f4:3590:6971:3045:4501:957f:c55d> has joined #yocto | 00:12 | |
*** Guest1422 is now known as brazuca | 00:12 | |
*** brazuca <brazuca!~Guest14@2804:7f4:3590:6971:3045:4501:957f:c55d> has quit IRC (Ping timeout: 252 seconds) | 00:20 | |
*** GNUmoon2 <GNUmoon2!~GNUmoon@gateway/tor-sasl/gnumoon> has quit IRC (Remote host closed the connection) | 00:25 | |
*** GNUmoon2 <GNUmoon2!~GNUmoon@gateway/tor-sasl/gnumoon> has joined #yocto | 00:25 | |
*** Guest1410 <Guest1410!~Guest14@2804:7f4:3590:6971:3045:4501:957f:c55d> has joined #yocto | 00:28 | |
*** Guest1410 is now known as brazuca | 00:28 | |
*** ferlzc <ferlzc!uid563760@id-563760.hampstead.irccloud.com> has joined #yocto | 00:47 | |
*** xmn <xmn!~xmn@cpe-72-225-198-203.nyc.res.rr.com> has quit IRC (Ping timeout: 252 seconds) | 00:56 | |
*** xmn <xmn!~xmn@cpe-72-225-198-203.nyc.res.rr.com> has joined #yocto | 00:59 | |
*** rfs613- is now known as rfs613 | 01:19 | |
*** sakoman <sakoman!~steve@dhcp-72-253-6-214.hawaiiantel.net> has joined #yocto | 01:29 | |
*** Maxxed <Maxxed!~Maxxed@nrgt.net> has quit IRC (Ping timeout: 244 seconds) | 01:29 | |
*** rber|res <rber|res!~rber|res@91-114-222-45.adsl.highway.telekom.at> has joined #yocto | 01:32 | |
*** xenador77 <xenador77!~xenador77@user/xenador77> has joined #yocto | 01:33 | |
*** RobertBerger <RobertBerger!~rber|res@91-114-222-45.adsl.highway.telekom.at> has quit IRC (Ping timeout: 252 seconds) | 01:34 | |
*** starblue <starblue!~juergen@dslb-094-221-186-098.094.221.pools.vodafone-ip.de> has quit IRC (Ping timeout: 252 seconds) | 01:54 | |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 240 seconds) | 01:54 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has joined #yocto | 01:54 | |
*** starblue <starblue!~juergen@dslb-094-220-119-106.094.220.pools.vodafone-ip.de> has joined #yocto | 01:56 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has quit IRC (Ping timeout: 240 seconds) | 01:58 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 01:59 | |
*** seninha <seninha!~seninha@user/seninha> has quit IRC (Remote host closed the connection) | 03:12 | |
*** florian <florian!~florian@dynamic-002-244-019-190.2.244.pool.telefonica.de> has quit IRC (Ping timeout: 268 seconds) | 03:26 | |
*** GNUmoon2 <GNUmoon2!~GNUmoon@gateway/tor-sasl/gnumoon> has quit IRC (Read error: Connection reset by peer) | 03:29 | |
*** GNUmoon2 <GNUmoon2!~GNUmoon@gateway/tor-sasl/gnumoon> has joined #yocto | 03:30 | |
*** sakoman <sakoman!~steve@dhcp-72-253-6-214.hawaiiantel.net> has quit IRC (Quit: Leaving.) | 03:32 | |
*** florian <florian!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has joined #yocto | 03:39 | |
*** pgowda_ <pgowda_!uid516182@id-516182.ilkley.irccloud.com> has joined #yocto | 04:10 | |
*** amitk <amitk!~amit@103.59.74.120> has joined #yocto | 04:27 | |
*** brazuca <brazuca!~Guest14@2804:7f4:3590:6971:3045:4501:957f:c55d> has quit IRC (Ping timeout: 252 seconds) | 05:46 | |
*** goliath <goliath!~goliath@user/goliath> has joined #yocto | 05:47 | |
*** alessioigor <alessioigor!~alessioig@185.178.95.254> has joined #yocto | 05:49 | |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 240 seconds) | 05:49 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has joined #yocto | 05:49 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has quit IRC (Ping timeout: 268 seconds) | 05:54 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 05:59 | |
*** alessioigor <alessioigor!~alessioig@185.178.95.254> has quit IRC (Quit: alessioigor) | 06:29 | |
*** mvlad <mvlad!~mvlad@2a02:2f08:4a10:7900:24d7:51ff:fed6:906d> has joined #yocto | 06:36 | |
*** goliath <goliath!~goliath@user/goliath> has quit IRC (Quit: SIGSEGV) | 06:50 | |
*** zpfvo <zpfvo!~fvo@i59F5CF5B.versanet.de> has joined #yocto | 06:51 | |
*** starblue <starblue!~juergen@dslb-094-220-119-106.094.220.pools.vodafone-ip.de> has quit IRC (Quit: WeeChat 3.0) | 06:52 | |
*** manuel1985 <manuel1985!~manuel198@62.99.131.178> has joined #yocto | 07:01 | |
*** gsalazar <gsalazar!~gsalazar@132.120.90.149.rev.vodafone.pt> has quit IRC (Quit: Leaving) | 07:08 | |
*** gsalazar <gsalazar!~gsalazar@132.120.90.149.rev.vodafone.pt> has joined #yocto | 07:08 | |
*** ptsneves <ptsneves!~Thunderbi@031011128142.dynamic-3-poz-k-0-2-0.vectranet.pl> has joined #yocto | 07:24 | |
qschulz | halstead: ok thanks for looking this up! | 07:29 |
---|---|---|
*** zpfvo <zpfvo!~fvo@i59F5CF5B.versanet.de> has quit IRC (Ping timeout: 252 seconds) | 07:29 | |
*** Guest53 <Guest53!~Guest53@62.67.214.101> has joined #yocto | 07:30 | |
Guest53 | https://stackoverflow.com/questions/24769944/where-are-bitbake-python-functions-documented | 07:31 |
Guest53 | people ask for it | 07:31 |
Guest53 | it used to be there in 2.3 https://docs.yoctoproject.org/2.3/bitbake-user-manual/bitbake-user-manual.html#bitbake-style-python-functions-versus-python-functions | 07:31 |
Guest53 | Well, it is there https://docs.yoctoproject.org/bitbake/2.0/singleindex.html | 07:33 |
mborzecki | does devtool work with multiconfig? the commands seem to interpret recipe name literally | 07:38 |
*** wkawka <wkawka!~wkawka@84-10-27-202.static.chello.pl> has joined #yocto | 07:40 | |
LetoThe2nd | mborzecki: good question, i wouldn't bet on it. | 07:40 |
*** zpfvo <zpfvo!~fvo@i59F5CF5B.versanet.de> has joined #yocto | 07:43 | |
mborzecki | LetoThe2nd: yeah, i was originally using dunfell which is quite old but already has multiconfigs, but ti's the same on kirkstone, i'm guessing master will be identical in that regard | 07:43 |
*** goliath <goliath!~goliath@user/goliath> has joined #yocto | 07:44 | |
LetoThe2nd | mborzecki: yes, i haven't noticed any substantial patches to devtool lately. | 07:45 |
qschulz | Guest53: https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bitbake-user-manual-metadata.html#bitbake-style-python-functions-versus-python-functions | 07:45 |
qschulz | but yeah, we should autogenerate doc from the docstring of libs | 07:45 |
mborzecki | ok, maybe something I can look into | 07:45 |
LetoThe2nd | mborzecki: would be much appreciated! | 07:48 |
*** murych <murych!~tmayzenbe@91.193.178.153> has joined #yocto | 07:55 | |
*** zpfvo <zpfvo!~fvo@i59F5CF5B.versanet.de> has quit IRC (Ping timeout: 240 seconds) | 08:03 | |
Guest53 | is devtool part of Yocto effort, not OE? | 08:08 |
rburton | There’s very little meaningful difference. It’s in the oe-core repository. | 08:10 |
*** td31 <td31!~td@131.228.2.20> has joined #yocto | 08:13 | |
td31 | Hi, | 08:14 |
td31 | why is "${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h" included in the python3-core package? Do we need the header for anything on target? | 08:14 |
*** zpfvo <zpfvo!~fvo@i59F5CF5B.versanet.de> has joined #yocto | 08:18 | |
*** goliath <goliath!~goliath@user/goliath> has quit IRC (Ping timeout: 268 seconds) | 08:22 | |
*** goliath <goliath!~goliath@user/goliath> has joined #yocto | 08:24 | |
*** rsalveti <rsalveti!uid117878@id-117878.uxbridge.irccloud.com> has quit IRC (Quit: Connection closed for inactivity) | 08:32 | |
*** jclsn <jclsn!~jclsn@2a04:4540:650a:9e00:edb:7f07:802b:71de> has joined #yocto | 08:36 | |
*** vladest <vladest!~Thunderbi@adsl-89-217-204-83.adslplus.ch> has joined #yocto | 09:06 | |
*** zpfvo <zpfvo!~fvo@i59F5CF5B.versanet.de> has quit IRC (Ping timeout: 264 seconds) | 09:29 | |
*** zpfvo <zpfvo!~fvo@i59F5CF5B.versanet.de> has joined #yocto | 09:32 | |
kayterina[m] | hello, is archiver.bbclass used by default somewhere in poky or it has to be included from a recipe? I grep'ed and I did not find any "include archiver" ot in the local.conf of the project | 09:47 |
LetoThe2nd | kayterina[m]: you need to include it. | 09:49 |
LetoThe2nd | kayterina[m]: | 09:52 |
LetoThe2nd | Couldn't find partition mmc 2:2y | 09:52 |
LetoThe2nd | meh | 09:53 |
LetoThe2nd | https://docs.yoctoproject.org/dev-manual/common-tasks.html#maintaining-open-source-license-compliance-during-your-product-s-lifecycle | 09:53 |
kayterina[m] | yes I found it after I asked. | 09:53 |
kayterina[m] | A, LetoThe2nd I have homemade tsipouro from Epirus. Too bad you cant taste it from here. | 09:53 |
*** xenador77 <xenador77!~xenador77@user/xenador77> has quit IRC (Remote host closed the connection) | 09:55 | |
*** xenador77 <xenador77!~xenador77@user/xenador77> has joined #yocto | 09:56 | |
*** xenador77 <xenador77!~xenador77@user/xenador77> has quit IRC (Remote host closed the connection) | 10:02 | |
*** xenador77 <xenador77!~xenador77@user/xenador77> has joined #yocto | 10:02 | |
LetoThe2nd | kayterina[m]: how comes you think of Epirus right now? | 10:03 |
LetoThe2nd | ;-) | 10:03 |
kayterina[m] | A friend is from there and her grandmother made tsipouro, she gave my a bottle and I left it in my bag, I have it here at the office. | 10:05 |
LetoThe2nd | kayterina[m]: hehe. I've actually been to Epirus a few times. | 10:06 |
kayterina[m] | which village? | 10:06 |
LetoThe2nd | sivota | 10:06 |
*** prabhakarlad <prabhakarlad!~prabhakar@pc.renesas.eu> has quit IRC (Quit: Client closed) | 10:07 | |
kayterina[m] | very popular. It has beach, it does not count! | 10:07 |
LetoThe2nd | does it at least count a little if pointing out that we were at a small family hotel a few km outside? ;-) | 10:09 |
kayterina[m] | yes, I will give you that. If you visit again go to metsovo, they have exceptional cheese.(ok for greek standards, we are not Gouda) | 10:10 |
LetoThe2nd | :-) | 10:10 |
LetoThe2nd | good keyword though, food. heading out for lunch! | 10:11 |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 240 seconds) | 10:13 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 10:18 | |
*** prabhakarlad <prabhakarlad!~prabhakar@pc.renesas.eu> has joined #yocto | 10:22 | |
*** jclsn <jclsn!~jclsn@2a04:4540:650a:9e00:edb:7f07:802b:71de> has quit IRC (Quit: WeeChat 3.5) | 10:28 | |
*** jclsn <jclsn!~jclsn@2a04:4540:650a:9e00:edb:7f07:802b:71de> has joined #yocto | 10:29 | |
*** xenador77 <xenador77!~xenador77@user/xenador77> has quit IRC (Remote host closed the connection) | 10:29 | |
*** wkawka <wkawka!~wkawka@84-10-27-202.static.chello.pl> has quit IRC (Quit: Client closed) | 10:33 | |
*** zpfvo <zpfvo!~fvo@i59F5CF5B.versanet.de> has quit IRC (Ping timeout: 268 seconds) | 10:50 | |
*** zpfvo <zpfvo!~fvo@i59F5CF5B.versanet.de> has joined #yocto | 10:53 | |
*** Guest53 <Guest53!~Guest53@62.67.214.101> has quit IRC (Quit: Client closed) | 10:53 | |
*** ptsneves <ptsneves!~Thunderbi@031011128142.dynamic-3-poz-k-0-2-0.vectranet.pl> has quit IRC (Ping timeout: 240 seconds) | 11:03 | |
*** seninha <seninha!~seninha@user/seninha> has joined #yocto | 11:08 | |
*** leon-anavi <leon-anavi!~Leon@46.55.231.62> has joined #yocto | 11:31 | |
*** prabhakarlad <prabhakarlad!~prabhakar@pc.renesas.eu> has quit IRC (Quit: Client closed) | 11:37 | |
*** td31 <td31!~td@131.228.2.20> has quit IRC (Quit: Client closed) | 11:51 | |
*** Guest14 <Guest14!~Guest14@2804:7f4:3590:6971:3045:4501:957f:c55d> has joined #yocto | 12:01 | |
*** Guest14 is now known as brazuca | 12:01 | |
*** brazuca <brazuca!~Guest14@2804:7f4:3590:6971:3045:4501:957f:c55d> has quit IRC (Quit: Client closed) | 12:10 | |
*** Guest14 <Guest14!~Guest14@2804:7f4:3590:6971:3045:4501:957f:c55d> has joined #yocto | 12:25 | |
*** Guest14 is now known as brazuca | 12:25 | |
*** ptsneves <ptsneves!~Thunderbi@85-128-83-172.static.ip.netia.com.pl> has joined #yocto | 12:28 | |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 252 seconds) | 12:48 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has joined #yocto | 12:48 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has quit IRC (Ping timeout: 268 seconds) | 12:54 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 12:54 | |
*** prabhakarlad <prabhakarlad!~prabhakar@pc.renesas.eu> has joined #yocto | 12:59 | |
JPEW | RP: Is there a better way to do the own-mirrors thing that I'm missing? | 13:21 |
JPEW | (or, I can move it to our own internal class if you don't want the overhead in OE-core) | 13:22 |
RP | JPEW: I couldn't think of a better way. I just worry every time we add more anon python and wish we had a better way :/ | 13:23 |
RP | particularly anon python that has to run for every recipe | 13:23 |
JPEW | RP: Ya, I was a little worried about that. Are there ideas on ways that could be done to do it better? | 13:24 |
RP | JPEW: I wondered if we should add a config level anon python | 13:24 |
JPEW | Like in .conf files and part of the basehash? | 13:24 |
JPEW | Is that the right term? | 13:25 |
RP | JPEW: we "pre parse" the base configuration and then parse the recipes on top of a copy | 13:25 |
JPEW | Ya; is that the same as the basehash or is there a basehash per-recipe? | 13:25 |
Saur[m] | Isn't there a risk that will be confusing if people expect the anon python from the config files to actually be executed per recipe? | 13:26 |
RP | we could run anon code at that point, with the caveat that changes made by the recipe specific bits would have no effect | 13:26 |
RP | Saur[m]: it would have to be marked differently and it would risk confusing people | 13:26 |
RP | JPEW: basehash is quite different | 13:26 |
JPEW | Perhaps we could "taint" the variables and warn if they are modified in the recipe | 13:26 |
JPEW | Got it | 13:26 |
*** hcg <hcg!~hcg@185.210.97.85> has quit IRC (Quit: Client closed) | 13:26 | |
RP | JPEW: that is a hash at the end of parsing of the recipe before the other taskgraph is accounted for | 13:26 |
JPEW | RP: Right, got it | 13:27 |
JPEW | RP: I though maybe moving it to a library function that gets called, but it's so short that didn't seem like it would help much | 13:33 |
*** hcg <hcg!~hcg@185.210.97.85> has joined #yocto | 13:40 | |
LetoThe2nd | whats the build-ability on RHEL these days? specifically RHEL 8... if I read correctly that should be Fedora 28. Anybody experience with dunfell and/or kirkstone? | 13:51 |
*** sakoman <sakoman!~steve@dhcp-72-253-6-214.hawaiiantel.net> has joined #yocto | 13:51 | |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 268 seconds) | 13:54 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has joined #yocto | 13:54 | |
*** jclsn <jclsn!~jclsn@2a04:4540:650a:9e00:edb:7f07:802b:71de> has quit IRC (Ping timeout: 268 seconds) | 13:58 | |
*** jclsn <jclsn!~jclsn@149.224.66.9.dynamic-pppoe.dt.ipv4.wtnet.de> has joined #yocto | 13:58 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has quit IRC (Ping timeout: 268 seconds) | 13:59 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 13:59 | |
RP | JPEW: right, I don't think a library function would buy much here | 14:01 |
RP | LetoThe2nd: alma8 works | 14:01 |
RP | LetoThe2nd: centos8 also did work | 14:01 |
*** jclsn <jclsn!~jclsn@149.224.66.9.dynamic-pppoe.dt.ipv4.wtnet.de> has quit IRC (Client Quit) | 14:02 | |
qschulz | kanavin: aren't go programs statically compiled? in that case, I think there could be an alternative to the go version question on the ML in actually using multiconfig for that? | 14:07 |
qschulz | create the binary with a different conf file for different go versions and then include this statically linked binary into the final image, which uses a different go compiler? | 14:08 |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 252 seconds) | 14:13 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has joined #yocto | 14:14 | |
*** agupta1_ <agupta1_!~agupta1@207.107.110.122> has joined #yocto | 14:18 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has quit IRC (Ping timeout: 240 seconds) | 14:18 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 14:19 | |
*** vladest1 <vladest1!~Thunderbi@2001:1715:9d9c:c530:b409:3bd7:80ce:b629> has joined #yocto | 14:25 | |
*** vladest <vladest!~Thunderbi@adsl-89-217-204-83.adslplus.ch> has quit IRC (Ping timeout: 240 seconds) | 14:27 | |
*** vladest1 is now known as vladest | 14:27 | |
*** zeddiii is now known as zeddii | 14:29 | |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 268 seconds) | 14:29 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 14:30 | |
*** rsalveti <rsalveti!uid117878@id-117878.uxbridge.irccloud.com> has joined #yocto | 14:33 | |
*** tomzy_0 <tomzy_0!~tomzy_0@84-10-27-202.static.chello.pl> has joined #yocto | 14:38 | |
*** Estrella_ <Estrella_!~quassel@192-063-174-177.res.spectrum.com> has joined #yocto | 14:41 | |
*** Estrella____ <Estrella____!~quassel@134.238.170.19> has joined #yocto | 14:41 | |
*** manuel_ <manuel_!~manuel198@62.99.131.178> has joined #yocto | 14:42 | |
*** Estrella___ <Estrella___!~quassel@192-063-174-177.res.spectrum.com> has quit IRC (Ping timeout: 245 seconds) | 14:43 | |
*** Estrella__ <Estrella__!~quassel@192-063-174-177.res.spectrum.com> has quit IRC (Ping timeout: 272 seconds) | 14:43 | |
*** manuel1985 <manuel1985!~manuel198@62.99.131.178> has quit IRC (Ping timeout: 240 seconds) | 14:45 | |
*** goliath <goliath!~goliath@user/goliath> has quit IRC (Quit: SIGSEGV) | 14:47 | |
*** gsalazar <gsalazar!~gsalazar@132.120.90.149.rev.vodafone.pt> has quit IRC (Quit: Leaving) | 14:47 | |
*** gsalazar <gsalazar!~gsalazar@132.120.90.149.rev.vodafone.pt> has joined #yocto | 14:47 | |
*** manuel_ <manuel_!~manuel198@62.99.131.178> has quit IRC (Ping timeout: 268 seconds) | 14:48 | |
*** berton[m] <berton[m]!~berton@2001:470:69fc:105::ce36> has joined #yocto | 14:54 | |
LetoThe2nd | RP: sorry, didn't notice the reply. so building dunfell should be fine? | 14:59 |
*** pgowda_ <pgowda_!uid516182@id-516182.ilkley.irccloud.com> has quit IRC (Quit: Connection closed for inactivity) | 14:59 | |
RP | LetoThe2nd: I'd think so | 15:01 |
LetoThe2nd | RP: kirkstone? | 15:02 |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 252 seconds) | 15:08 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has joined #yocto | 15:09 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has quit IRC (Ping timeout: 245 seconds) | 15:13 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 15:14 | |
*** jsandman <jsandman!~jsandman@95.179.203.88> has quit IRC (Quit: Ping timeout (120 seconds)) | 15:18 | |
*** jsandman <jsandman!~jsandman@95.179.203.88> has joined #yocto | 15:18 | |
RP | LetoThe2nd: should be fine | 15:23 |
LetoThe2nd | RP: kaythanks! | 15:27 |
*** gsalazar <gsalazar!~gsalazar@132.120.90.149.rev.vodafone.pt> has quit IRC (Ping timeout: 240 seconds) | 15:28 | |
*** denisoft81 <denisoft81!~denisoft8@host-79-31-20-131.retail.telecomitalia.it> has joined #yocto | 15:29 | |
kanavin | qschulz, I think that's more complicated than just figuring out how to use a single go compiler | 15:29 |
*** yannholo <yannholo!~yannholo@fs-141-0-205-41.fullsave.info> has joined #yocto | 15:29 | |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 268 seconds) | 15:39 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has joined #yocto | 15:39 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has quit IRC (Ping timeout: 252 seconds) | 15:43 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 15:44 | |
*** yannholo_ <yannholo_!~yannholo@fs-141-0-205-41.fullsave.info> has joined #yocto | 15:46 | |
*** lexano <lexano!~lexano@174.119.69.134> has quit IRC (Remote host closed the connection) | 15:48 | |
*** yannholo <yannholo!~yannholo@fs-141-0-205-41.fullsave.info> has quit IRC (Ping timeout: 268 seconds) | 15:49 | |
yannholo_ | Hello, I have a file in my image "/lib/firmware/.../something.conf" I want to change it, when searching the recipe it came from with "oe-pkgdata-util find-path /lib/firmware/.../something.conf" I get an error "Unable to find any package producing path..." Is there another way to find the source recipe ? | 15:55 |
yannholo_ | (I know the sources it comes from and even have my patch ready, but am not finding the recipe) | 15:56 |
*** gsalazar <gsalazar!~gsalazar@213.58.201.38> has joined #yocto | 16:02 | |
*** zpfvo <zpfvo!~fvo@i59F5CF5B.versanet.de> has quit IRC (Ping timeout: 268 seconds) | 16:09 | |
*** gsalazar <gsalazar!~gsalazar@213.58.201.38> has quit IRC (Ping timeout: 240 seconds) | 16:09 | |
*** denisoft81 <denisoft81!~denisoft8@host-79-31-20-131.retail.telecomitalia.it> has quit IRC (Quit: Leaving) | 16:16 | |
*** denisoft81 <denisoft81!~denisoft8@host-79-31-20-131.retail.telecomitalia.it> has joined #yocto | 16:20 | |
*** agupta1_ <agupta1_!~agupta1@207.107.110.122> has quit IRC (Ping timeout: 240 seconds) | 16:22 | |
*** dev1990 <dev1990!~dev@159-205-91-89.adsl.inetia.pl> has quit IRC (Quit: Konversation terminated!) | 16:32 | |
*** denisoft81 <denisoft81!~denisoft8@host-79-31-20-131.retail.telecomitalia.it> has quit IRC (Quit: Leaving) | 16:34 | |
*** gsalazar <gsalazar!~gsalazar@132.120.90.149.rev.vodafone.pt> has joined #yocto | 16:40 | |
*** agupta1_ <agupta1_!~agupta1@207.107.110.122> has joined #yocto | 16:49 | |
*** xmn <xmn!~xmn@cpe-72-225-198-203.nyc.res.rr.com> has quit IRC (Ping timeout: 268 seconds) | 16:56 | |
*** florian <florian!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has quit IRC (Ping timeout: 268 seconds) | 17:01 | |
*** denisoft81 <denisoft81!~denisoft8@host-79-31-20-131.retail.telecomitalia.it> has joined #yocto | 17:02 | |
vmeson | JaMa: Can you explain what happened when you were testing the /proc/pressure regulation either here, in a email or in a defect ? | 17:08 |
vmeson | My take so far is that you had two chromium builds going before and they always worked then you added /proc/pressure regulation and the same workflow resulted in an OOM, right? | 17:09 |
*** denisoft81 <denisoft81!~denisoft8@host-79-31-20-131.retail.telecomitalia.it> has quit IRC (Quit: Leaving) | 17:09 | |
vmeson | If so what pressure regulation values did you pick and why did you pick them? | 17:09 |
*** denisoft81 <denisoft81!~denisoft8@host-79-31-20-131.retail.telecomitalia.it> has joined #yocto | 17:11 | |
*** denisoft81 <denisoft81!~denisoft8@host-79-31-20-131.retail.telecomitalia.it> has quit IRC (Client Quit) | 17:12 | |
vmeson | Finally, I don't see how bitbake could avoid having two chromium builds running at once since it will eventually need to start at least one task given the current scheduler design that says that at least one task must be running. | 17:13 |
*** florian <florian!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has joined #yocto | 17:14 | |
*** lexano <lexano!~lexano@174.119.69.134> has joined #yocto | 17:19 | |
yannholo_ | @yannholo_ I managed to make it work, the SRC_URI of the recipe used the destsuffix and name parameter, maybe that breaks oe-pkgdata-util... | 17:21 |
*** yannholo_ <yannholo_!~yannholo@fs-141-0-205-41.fullsave.info> has quit IRC (Remote host closed the connection) | 17:25 | |
JaMa | vmeson: no, OOMK wasn't caused by /proc/pressure regulation, it was already happening, I was just asking if there is a technical reason not to track memory pressure (to avoid OOMK or at least lower the probability), if it was just omitted because it didn't look interesting on your builds, then I might add it to buildstats to see what it records in my builds | 17:35 |
JaMa | vmeson: in https://github.com/shr-project/test-oe-build-time I have bunch of results where bitbake tasks were running when the builder was already using a lot of swap, if that's "easy" to detect from memory pressure before it gets really bad, than additional regulation on memory pressure might help | 17:36 |
vmeson | JaMa: ok, agupta1_ is going to add memory regulation as well so maybe wait a day or two since it should be simple enough to add. | 17:36 |
vmeson | JaMa: I think I told agupta1_ that no one would ever push their build machine so a hard that there would be lots of swapping! There goes that assertion! | 17:37 |
JaMa | vmeson: I haven't pushed the bootcharts with pressure collection enabled in buildstats yet, because my last build failed (when building rust-llvm-native from dunfell), but I can push the partial results if you want to see my cpu/io pressure | 17:37 |
JaMa | hehe | 17:38 |
vmeson | JaMa: sure, we'll take a look. | 17:38 |
JaMa | with nodejs/chromium/qtwebengine/qtwebkit/webkit-gtk in the mix it's difficult to find balance between PARALLEL_MAKE/BB_NUMBER_THREADS so even with just 8 BB_NUMBER_THREADS you can easily get to swap when the BIG do_compile align badly and run at the same time | 17:39 |
JaMa | with pressure regulation it might be easier to tell bitbake to go ham and when it starts to go badly to backoff a bit | 17:40 |
vmeson | JaMa: Yep, the plan is to teach make/ninja about pressure regulation and other metrics to be able to walk the line between good use of the system and overloading the box. | 17:41 |
JaMa | and https://gitlab.eclipse.org/eclipse/oniro-core/oniro/-/merge_requests/196/diffs looks great to me, because it will allow to backoff even after 4 unfortuantely BIG do_compile tasks already started | 17:41 |
JaMa | and the RAM might be a bit unpredictable if someone happens to use the workstation for builds as well as regular work (e.g. 30G RAM in chrome tabs) | 17:43 |
JaMa | OOMK was sometimes kind enough to kill chrome before g++, but sometimes it kills systemd or networking which is terrible :) | 17:45 |
JaMa | PARALLEL_MAKE:pn-qtwebengine = "-j 40" + PARALLEL_MAKE:pn-chromium = "-j 40" + PARALLEL_MAKE:pn-webruntime = "-j 40" (instead of my default -j 70) helps a lot with OOMK, but also looses a bit when chromium is the only recipe I've changed and is rebuilt without any browser eating host's ram | 17:47 |
*** murych <murych!~tmayzenbe@91.193.178.153> has quit IRC (Quit: Konversation terminated!) | 17:50 | |
vmeson | JaMa: have you played with PARALLEL_MAKE:pn-qtwebengine = "-j 40 -l 40" -- That way if you only have one build, you get 40 compile job but when there are more things going on, you keep the system load averaging at 40. | 17:50 |
vmeson | We use that on the autobuilder: https://git.yoctoproject.org/yocto-autobuilder-helper/commit/?id=5c5fc7bcd221427d34bbac80c9bad315fb6de4df | 17:51 |
vmeson | if anyone has played with the job server feature of Gnu Make, that would be interesting to hear about. https://www.gnu.org/software/make/manual/html_node/Job-Slots.html | 17:52 |
kergoth | richard had an old patch to make bitbake act as a make jobserver. not sure it ever got past prototype though | 17:53 |
vmeson | I'm not sure how we'd share one job server between multiple builds (different users?) but I guess it's possible. | 17:53 |
vmeson | kergoth: richard has an old patch for just about everything it seems! Let's see if he wanders by and digs it up before I ask him about it later this week. | 17:54 |
*** seninha <seninha!~seninha@user/seninha> has quit IRC (Ping timeout: 252 seconds) | 17:57 | |
JaMa | vmeson: not yet, but looks like I really should try it (and not only for qtwebengine, but in default PARALLEL_MAKE I guess) | 17:58 |
*** florian <florian!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has quit IRC (Ping timeout: 252 seconds) | 18:01 | |
vmeson | JaMa: cool. | 18:02 |
*** xmn <xmn!~xmn@cpe-72-225-198-203.nyc.res.rr.com> has joined #yocto | 18:13 | |
*** florian <florian!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has joined #yocto | 18:13 | |
JaMa | vmeson: here are my buildstats with 8 and 64 bitbake threads https://raw.githubusercontent.com/shr-project/test-oe-build-time/results/threadripper-3970x-128gb-gentoo-kirkstone-2022-07/5-build-8-bb-threads.bootchart.svg https://raw.githubusercontent.com/shr-project/test-oe-build-time/results/threadripper-3970x-128gb-gentoo-kirkstone-2022-07/4-build-all-cores.bootchart.svg I guess you need to read the .log | 18:32 |
JaMa | files to find right BB_PRESSURE_MAX_* numbers, right? I don't see the scale in the graph (even when viewing interactively not in .svg export) | 18:32 |
*** goliath <goliath!~goliath@user/goliath> has joined #yocto | 18:35 | |
*** starblue <starblue!~juergen@dslb-094-220-119-106.094.220.pools.vodafone-ip.de> has joined #yocto | 18:37 | |
*** vladest <vladest!~Thunderbi@2001:1715:9d9c:c530:b409:3bd7:80ce:b629> has quit IRC (Ping timeout: 240 seconds) | 18:42 | |
JaMa | vmeson: agupta1_: I've a patch for rendering memory pressure as well, testing it now | 18:55 |
vmeson | JaMa: buildstats logging or pressure regulation or both? | 18:58 |
JaMa | logging was already there, I've just added the graph to pybootchartgui to more easily see the values I have | 19:00 |
vmeson | JaMa: ah right. The 6 GB swap max scale is nuts! Why can't you run the builds seriallly? | 19:01 |
*** Estrella__ <Estrella__!~quassel@192-063-174-177.res.spectrum.com> has joined #yocto | 19:01 | |
*** BWhitten <BWhitten!~BWhitten@128.224.143.150.dyn.plus.net> has joined #yocto | 19:03 | |
JaMa | vmeson: this is single build | 19:03 |
vmeson | and 64 threads is ~ 32 GB swap - buddy, here's a dime, go buy some more RAM ! ;-) | 19:04 |
JaMa | vmeson: highest mem pressure i the logs is: 77.2 54.25 21.04 77033 | 19:04 |
JaMa | vmeson: well 128G is kind of safe limit for TRX40 | 19:04 |
vmeson | https://dilbert.com/strip/1995-06-24 -- inflation s/nickel/dime/ | 19:04 |
*** Estrella____ <Estrella____!~quassel@134.238.170.19> has quit IRC (Ping timeout: 268 seconds) | 19:05 | |
vmeson | JaMa: yeah, let me look at the buildchart again... | 19:05 |
JaMa | vmeson: with 8 modules I most likely couldn't use 3200Mhz ram and QVL for 8 modules is _very_ short | 19:05 |
JaMa | and even with just 4 32G modules @2666 I'm now seeing some single bit errors in memtest86 :/ | 19:06 |
JaMa | upgrading from 3970X to 3995WX would be nice, but I'm not paid that well :) | 19:07 |
JaMa | vmeson: you can try to run it on your builder as well to see what breaks, just checkout langdale branch and run test.sh | 19:08 |
vmeson | JaMa: agupta1_ has the memory pressure regulation done but not tested... | 19:11 |
vmeson | We should probably try your build... what a monster config!! | 19:12 |
JaMa | vmeson: I've refreshed the bootcharts in repo to show mem pressure and sent the pybootchart patch to oe-core | 19:13 |
vmeson | JaMa: kk. reloaded: the bust of swap pressure is rather short.... | 19:15 |
vmeson | JaMa: it would be interesting a buildchart if you set the max cpu pressure to say 500-2000 depend on the numbers in your logs. | 19:17 |
JaMa | yes and in the example I was looking at it was already when chromium-x11, webkit-gtk, firefox do_compile were running (so too late not to start them) | 19:18 |
*** florian_kc <florian_kc!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has joined #yocto | 19:18 | |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 252 seconds) | 19:19 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has joined #yocto | 19:19 | |
JaMa | it could ease a bit by not starting anything more, but still these 3 will be able to trigger OOMK even when they continue to run only these 3 | 19:19 |
vmeson | JaMa: yeah with -j 40, you'd still have three big jobs start, maybe a bit later than usual, then once you start seeing cpu pressure, it's sustained so there shouldn't be another job started for a while. | 19:20 |
vmeson | JaMa: hmmm, I guess you have to try it out so see if it helps. When the big jobs are linking, there's going to be more memory needed... so we'll have to think about how to handle that. | 19:21 |
*** florian <florian!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has quit IRC (Ping timeout: 252 seconds) | 19:22 | |
JaMa | yes, I plan to run it few more times with various settings, it will take couple days to finish | 19:22 |
JaMa | most of my bigger projects use ninja, so maybe the -l you mentioned will do most of the work | 19:23 |
vmeson | our 192 core system has 256 GB RAM so maybe better balanced. Occasionally someone messes up and it OOMs or the scheduler hangs but it's so rare that we haven't figure out how to prevent it let along who to blame! ;-) | 19:23 |
JaMa | if not will wait for agherzan to submit his cmake changes and test those as well | 19:23 |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has quit IRC (Ping timeout: 252 seconds) | 19:23 | |
JaMa | it has less ram per core than mine, you're just not hammering it enough :) | 19:24 |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 19:25 | |
*** angrysiamese <angrysiamese!~erik@50.207.9.18> has left #yocto (Leaving) | 19:28 | |
vmeson | JaMa: heh. Do you have any logs showing what was happening when the memory pressure spiked at 4950 or so in : https://raw.githubusercontent.com/shr-project/test-oe-build-time/results/threadripper-3970x-128gb-gentoo-kirkstone-2022-07/4-build-all-cores.bootchart.svg | 19:30 |
kergoth | I ended up adding naive heuristic-based scaling down of jobs/threads based on mem-per-core for our distro, not ideal, but better than nothing | 19:31 |
kergoth | yawn | 19:31 |
*** Ram-Z <Ram-Z!~Ram-Z@li1814-254.members.linode.com> has quit IRC (Ping timeout: 252 seconds) | 19:38 | |
JaMa | vmeson: like bitbake cooker log? I can also find some graphs in grafana from that time, but not sure what else it would show | 19:39 |
*** Ram-Z <Ram-Z!~Ram-Z@li1814-254.members.linode.com> has joined #yocto | 19:41 | |
vmeson | JaMa: I'm wondering if the log.do_compile files would show when the big apps were being linked. | 19:43 |
JaMa | ah log.do_compile files are already gone | 19:44 |
JaMa | https://raw.githubusercontent.com/shr-project/test-oe-build-time/results/threadripper-3970x-128gb-gentoo-kirkstone-2022-03/luneos-dev-emulator-appliance-j70-bb8-with-webruntime-j40.png shows how closely I get to 128G in regular image build of LuneOS (and this is after reducing webruntime to -j 40) | 19:44 |
*** Ram-Z <Ram-Z!~Ram-Z@li1814-254.members.linode.com> has quit IRC (Ping timeout: 240 seconds) | 19:47 | |
JaMa | vmeson: https://raw.githubusercontent.com/shr-project/test-oe-build-time/be96ba3722b995bf61e10aa71d7fc7654a5a61c0/threadripper-3970x-128gb-gentoo-kirkstone-2022-07/4-build-all-cores.grafana.png | 19:49 |
JaMa | sorry wrong file | 19:49 |
JaMa | vmeson: https://raw.githubusercontent.com/shr-project/test-oe-build-time/4a4ef91fd5a52b7314ebaa8fdfcb029fe4569c26/threadripper-3970x-128gb-gentoo-kirkstone-2022-07/4-build-all-cores.grafana.png | 19:51 |
JaMa | this shows the 40GB swap spike at 02:10 | 19:52 |
vmeson | JaMa: it's hard to say what's causing the spike, based on the Graphana data. Can you try a run with some value of cpu regulation, say 1000, and leave bitbake's max tasks at 64? | 19:58 |
*** seninha <seninha!~seninha@user/seninha> has joined #yocto | 19:58 | |
JaMa | vmeson: yes, will do in couple days (tonight want to re-run dunfell build), then will go back to langdale testing | 20:00 |
vmeson | JaMa: ok, Thursday morning is when we usually go over build regulation things. 9 AM ET - does that work for you? | 20:00 |
JaMa | will try to attend and get the data before that | 20:02 |
JaMa | tomorrow might receive new laptop, maybe I'll be able to let my workstation do the benchmark when setting the laptop | 20:03 |
*** davidinux <davidinux!~davidinux@81.22.36.18> has quit IRC (Ping timeout: 245 seconds) | 20:04 | |
vmeson | JaMa: super, thanks. | 20:06 |
JaMa | vmeson: is it the same zoom meeting as Weekly Triage just 1,5 hour earlier? | 20:07 |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 268 seconds) | 20:09 | |
*** goliath <goliath!~goliath@user/goliath> has quit IRC (Quit: SIGSEGV) | 20:13 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 20:14 | |
*** voyqsv <voyqsv!~voyqsv@user/ako> has joined #yocto | 20:17 | |
*** florian_kc <florian_kc!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has quit IRC (Quit: Ex-Chat) | 20:18 | |
*** florian <florian!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has joined #yocto | 20:20 | |
*** voyqsv <voyqsv!~voyqsv@user/ako> has quit IRC (Remote host closed the connection) | 20:23 | |
vmeson | JaMa: yep | 20:32 |
vmeson | JaMa: err, no... I'll send you an invite. | 20:33 |
*** xenador77 <xenador77!~xenador77@user/xenador77> has joined #yocto | 20:47 | |
*** manuel1985 <manuel1985!~manuel198@2a02:1748:dd5c:f290:c5b2:fdff:b718:9edf> has joined #yocto | 20:52 | |
*** seninha <seninha!~seninha@user/seninha> has quit IRC (Remote host closed the connection) | 20:55 | |
*** nemik <nemik!~nemik@207.237.248.190> has quit IRC (Ping timeout: 252 seconds) | 20:58 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has joined #yocto | 20:59 | |
*** leon-anavi <leon-anavi!~Leon@46.55.231.62> has quit IRC (Remote host closed the connection) | 20:59 | |
*** goliath <goliath!~goliath@user/goliath> has joined #yocto | 21:01 | |
*** nemik <nemik!~nemik@162-245-20-117.PUBLIC.monkeybrains.net> has quit IRC (Ping timeout: 240 seconds) | 21:03 | |
*** nemik <nemik!~nemik@207.237.248.190> has joined #yocto | 21:03 | |
*** xenador77 <xenador77!~xenador77@user/xenador77> has quit IRC (Remote host closed the connection) | 21:10 | |
*** xenador77 <xenador77!~xenador77@user/xenador77> has joined #yocto | 21:14 | |
*** alimon <alimon!~alimon@2806:10b7:3:a0b9:2c32:cfff:fe8e:de1f> has quit IRC (Ping timeout: 272 seconds) | 21:22 | |
*** mvlad <mvlad!~mvlad@2a02:2f08:4a10:7900:24d7:51ff:fed6:906d> has quit IRC (Remote host closed the connection) | 21:25 | |
*** Estrella_ <Estrella_!~quassel@192-063-174-177.res.spectrum.com> has quit IRC (Remote host closed the connection) | 21:27 | |
*** Estrella_ <Estrella_!~quassel@192-063-174-177.res.spectrum.com> has joined #yocto | 21:27 | |
*** BWhitten <BWhitten!~BWhitten@128.224.143.150.dyn.plus.net> has quit IRC (Remote host closed the connection) | 21:30 | |
*** erbo <erbo!~erik@linode.unixshell.se> has quit IRC (Ping timeout: 240 seconds) | 21:30 | |
*** tomzy_0 <tomzy_0!~tomzy_0@84-10-27-202.static.chello.pl> has quit IRC (Ping timeout: 252 seconds) | 21:30 | |
*** alimon <alimon!~alimon@2806:10b7:3:89c0:2c32:cfff:fe8e:de1f> has joined #yocto | 21:35 | |
*** willo <willo!~quassel@60-241-162-73.static.tpgi.com.au> has quit IRC (*.net *.split) | 21:38 | |
*** willo <willo!~quassel@60-241-162-73.static.tpgi.com.au> has joined #yocto | 21:39 | |
*** manuel1985 <manuel1985!~manuel198@2a02:1748:dd5c:f290:c5b2:fdff:b718:9edf> has quit IRC (Ping timeout: 268 seconds) | 21:47 | |
*** xenador77 <xenador77!~xenador77@user/xenador77> has quit IRC (Ping timeout: 252 seconds) | 21:59 | |
RP | vmeson: I['m sure we discussed my jobserver patch in the past? | 22:26 |
*** erbo <erbo!~erik@linode.unixshell.se> has joined #yocto | 22:27 | |
RP | vmeson: https://git.yoctoproject.org/poky-contrib/commit/?h=rpurdie/wipqueue6&id=2f1f07c9d7f2f3b06d199172887bfc95e5aa4b79 was a version of it | 22:30 |
*** Xagen_ <Xagen_!~Xagen@99-135-179-142.lightspeed.austtx.sbcglobal.net> has joined #yocto | 22:33 | |
*** Xagen <Xagen!~Xagen@99-135-179-142.lightspeed.austtx.sbcglobal.net> has quit IRC (Ping timeout: 245 seconds) | 22:34 | |
*** agupta1_ <agupta1_!~agupta1@207.107.110.122> has quit IRC (Ping timeout: 240 seconds) | 22:39 | |
*** erbo <erbo!~erik@linode.unixshell.se> has quit IRC (Ping timeout: 245 seconds) | 22:39 | |
*** erbo <erbo!~erik@linode.unixshell.se> has joined #yocto | 22:44 | |
*** amitk <amitk!~amit@103.59.74.120> has quit IRC (Ping timeout: 268 seconds) | 22:44 | |
*** florian <florian!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has quit IRC (Ping timeout: 252 seconds) | 23:12 | |
*** sakoman <sakoman!~steve@dhcp-72-253-6-214.hawaiiantel.net> has quit IRC (Ping timeout: 268 seconds) | 23:23 | |
*** florian <florian!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has joined #yocto | 23:33 | |
*** sakoman <sakoman!~steve@dhcp-72-253-6-214.hawaiiantel.net> has joined #yocto | 23:38 | |
*** florian <florian!~florian@dynamic-002-243-129-026.2.243.pool.telefonica.de> has quit IRC (Ping timeout: 252 seconds) | 23:53 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!