- MartiniMoe (QUIT: Remote host closed the connection) (~moe@p200300eecf1ede4678904cc09fd8011c.dip0.t-ipconnect.de) | 00:23 | |
erle | how do people usually solve “build result depends on variable” in make(1)? https://source.mnt.re/reform/reform/-/issues/24 (yes i can google it, but stack overflow will not necessarily give me the idiomatic answer) | 00:36 |
---|---|---|
- Gooberpatrol66 (QUIT: Quit: Konversation terminated!) (~Gooberpat@user/gooberpatrol66) | 00:42 | |
- chomwitt (QUIT: Quit: WeeChat 3.8) (~chomwitt@2a02:85f:9a74:ce00:1ac0:4dff:fedb:a3f1) | 00:46 | |
+ Gooberpatrol66 (~Gooberpat@user/gooberpatrol66) | 00:50 | |
- AnimaInvicta (PART: !!unknown attribute: msg!!) (~AnimaInvi@88-120-179-216.subs.proxad.net) | 01:09 | |
- mjw (QUIT: Ping timeout: 250 seconds) (~mjw@195.23.216.83) | 01:18 | |
- vagrantc (QUIT: Quit: leaving) (~vagrant@2600:3c01:e000:21:7:77:0:50) | 01:58 | |
- n_to (QUIT: Quit: quitidiquit) (~n_to@2a03:4000:6:3662:24b1:57ff:fec6:76c1) | 02:00 | |
+ n_to (~n_to@2a03:4000:6:3662:24b1:57ff:fec6:76c1) | 02:00 | |
- qbit (QUIT: Remote host closed the connection) (~qbit@user/qbit) | 02:05 | |
+ qbit (~qbit@user/qbit) | 02:06 | |
+ emdevt (~emdevt@2001:7e8:faf6:f101:70f9:10a4:805e:9fe1) | 02:19 | |
kfx | erle: write the flag into a file and declare the target in the makefile to depend on that file, in my opinion | 02:40 |
kfx | (this has the bonus of recording the build-time flag with the artifact) | 02:47 |
- paperManu (QUIT: Ping timeout: 264 seconds) (~paperManu@64.58.44.160) | 03:18 | |
- synnfynn (QUIT: Quit: until the end..) (~synnfynn@user/synnfynn) | 03:33 | |
ch | usually you have something that puts the var into a .h file | 03:46 |
ch | and the make rules (usually automatically/implicitly) depend on the .h | 03:46 |
erle | well, i know how to side-step this entire thing in theory and in practice with a top-down recursive build system – just not with a bottom-up toposort-based one. | 04:45 |
erle | as i have said before: a topological sort of build steps is the wrong abstraction for any build that does not consist of pure functions. | 04:46 |
erle | real-world builds are generally a lot more like partially evaluatable functions that have a fixed point (the build result) | 04:46 |
erle | anyway, writing it into a file sounds a bit weird, but idk what is idiomatic in make(1) | 04:47 |
erle | ch would making everything that has an #ifdef with a relevant build variable (in this case: the keyboard variant) be a phony target be a good idea? | 04:50 |
kfx | make uses mtimes to determine what has changed since last build. it's not a modern declarative build system so much as an mtime-driven dependency tracker. | 04:58 |
erle | kfx that is unfortunate (for example when you switch git branches), but IMO only relevant for the problem at hand, if it leads to “only a file has an mtime and thus only a file can be a dependency”. is that what you want to point out? | 05:04 |
kfx | technically there are ways to make this happen without files, but those ways are dark arts which healthy people forbear to touch | 05:05 |
kfx | it quickly becomes an unreadable mess requiring a phd in system v to comprehend | 05:05 |
kfx | so the cheap and cheerful workaround is to put stuff in files, with which make is good at dealing. | 05:06 |
erle | depends on the way you structure your build system. IMO a build system needs to do 4 things to do common tasks: 1. track dependencies, 2. track non-existence dependencies 3. build targets unconditionally 4. at runtime, decide you do not need to build a target after all. | 05:06 |
erle | it turns out that only 1 and 3 are easy (or even possible) to implement with make-style systems | 05:06 |
erle | 2 and 4 are at least very hard (or, as i conjecture: impossible) | 05:07 |
erle | hilariously the easiest option is to always build everything all the time xD | 05:08 |
kfx | GNU make has a flag (-B) to build all targets whether or not make would otherwise conclude they need building | 05:10 |
erle | kfx in any case, what do you think of the “declare everything that has an #ifdef as always out of date” solution? | 05:10 |
kfx | that'd probably work | 05:10 |
erle | i think for this kind of thing, doing the simplest thing that works is not a mistake | 05:12 |
erle | btw, very funny: the way i have chosen to test OOM situations now is by doing “</dev/zero head -c 4G |tail |sleep 10” | 05:15 |
erle | this works because tail needs to keep the entire input in memory just in case it's the last line hehehehe | 05:15 |
+ helgoman__ (~helgoman@178.38.121.62) | 06:48 | |
- helgoman_ (QUIT: *.net *.split) (~helgoman@178.38.121.62) | 06:54 | |
- chorc (QUIT: *.net *.split) (~chorc@user/chorc) | 06:54 | |
+ chorc (~chorc@user/chorc) | 06:55 | |
- emdevt (QUIT: Remote host closed the connection) (~emdevt@2001:7e8:faf6:f101:70f9:10a4:805e:9fe1) | 07:28 | |
chorc | josch: latest reform-tools install fails with this error: trying to overwrite '/usr/lib/systemd/user/pipewire-pulse.service', which is also in package pipewire-pulse (1.4.8-1) | 09:17 |
josch | chorc: thank you, lets fix this quickly | 09:18 |
chorc | no, thank you! :) | 09:19 |
josch | and pipewire-pulse.socket has the same problem | 09:22 |
josch | and pipewire.socket and pipewire.service | 09:23 |
chorc | yeah, they are pretty much exactly what minute added to reform-tools, except sockets have condition for user not being root | 09:25 |
josch | minute: i'm going to revert your commit "pipewire service overrides" in reform-tools as the files that installs conflict with files which are already shipped by the pipewire and pipewire-pulse packages. We have to come up with a better solution. | 09:25 |
josch | ah ConditionUser=!root | 09:26 |
josch | minute: is this only for the reform-setup-wizard? | 09:26 |
kfx | probably ought to be in e.g. /usr/lib/systemd/user/pipewire-pulse.service.d/reform.conf (do systemd user unit files support drop-in files?) | 09:35 |
josch | yes | 09:36 |
+ mjw (~mjw@84.241.222.248) | 09:54 | |
- mjw (QUIT: Ping timeout: 245 seconds) (~mjw@84.241.222.248) | 10:03 | |
+ mjw (~mjw@84.241.222.248) | 10:05 | |
chorc | I've proceeded with --force-overwrite, wanted to test those lpc module changes | 10:42 |
josch | version 1.79-1+reform20250926T072932Z+1 of reform-tools will fix this issue and will probably be in the repos in 15 minutes | 10:44 |
chorc | nice, lpc module now reports voltage when charging | 10:55 |
minute | josch: yeah this was only for setup wizard, so that root can play audio | 10:58 |
- mjw (QUIT: Ping timeout: 240 seconds) (~mjw@84.241.222.248) | 10:59 | |
josch | minute: in that case, maybe a better solution than these files being shipped by reform-tools for the whole system forever would be to have them exist temporarily (maybe even in /etc? maybe as drop-ins?) and clean them up after the setup-wizard is finished? | 10:59 |
minute | josch: this wasn't my commit as far as i remember, i only made a prototype of that in reform-system-image https://source.mnt.re/reform/reform-tools/-/commit/a410cf56b2e0ea41316a8aa4f7fbaf0ab82c9b1d?merge_request_iid=143 | 11:00 |
josch | or even a completely different approach: sway (and the audio it plays) do not need to be run by root -- only the reform-setup-wizard needs these privileges. So we could also re-structure things such that the initial sway is started as a normal user (thus not needing any overrides) | 11:00 |
josch | minute: correct, we talked about that back then and you agreed that this should be moved to reform-tools. But maybe i misunderstood? | 11:01 |
minute | josch: yeah i didn't spend any time thinking of exactly how this should be added to reform-tools :D | 11:01 |
josch | minute: no worries, i'll fix this up | 11:02 |
josch | (probably tonight) | 11:02 |
minute | josch: about sway not running as root, this might complicate things as setup-wizard needs root privileges and then has to be elevated and still run on the non root sway | 11:03 |
josch | sure, but there are ways to start a process as root by non-root users | 11:03 |
minute | josch: this is all only to make orca output sound | 11:03 |
josch | most trivially, reform-setup-wizard could even be suid root | 11:04 |
minute | josch: yes i know. but it has to talk to the wayland server then | 11:04 |
josch | which should work if it inherits the right environment variables -- i'll look into it | 11:04 |
minute | hmm suid binaries open some security issue doors, or no? | 11:04 |
ch | yeah | 11:04 |
minute | i'm unhappy that things have to be more complicated now only because pipewire decided that root isn't supposed to output audio (why not?!) | 11:05 |
minute | or the default pipewire config at least... | 11:06 |
ch | i imagine some part wants r-s-w have a r-s-w-service that does the root things, but that quickly gets out of hand | 11:06 |
josch | ch: using sudo with the user running sway only be allowed to run r-s-w as superuser would be a better way i think | 11:08 |
ch | certainly easier | 11:08 |
josch | or, of course, temporarily override the systemd files while the setup runs as root | 11:08 |
josch | but i like the former method more as it avoids temporary files which need to be cleaned and at the same time only runs the things as root that have to be run as root | 11:09 |
ch | another wild option: could r-s-w run the things it needs to do as root using sudo? | 11:10 |
josch | ch: why do you think would that be a superior solution? | 11:11 |
chorc | josch: updated reform-tools installs cleanly, no issues | 11:11 |
ch | josch: less code running as root, probably no messing with pipewire config | 11:12 |
josch | a quick fix with shuffling config files around would've been easier if r-s-w would still call scripts in the cleanup.d directory when it exits... | 11:14 |
minute | josch: why? you can just add cleanup stuff to reform-setup.sh cleanup section | 11:27 |
minute | test test | 11:28 |
josch | minute: ah true indeed, thank you | 11:29 |
minute | ah, my messages were unstuck now | 11:30 |
+ mjw (~mjw@84.241.222.248) | 11:36 | |
+ paperManu (~paperManu@64.58.44.160) | 12:29 | |
+ gustav2 (~gustav@c-78-82-55-162.bbcust.telenor.se) | 13:02 | |
- enwu (QUIT: Ping timeout: 244 seconds) (~enwu@user/enwu) | 13:08 | |
+ enwu (~enwu@user/enwu) | 13:08 | |
josch | okay, i have a poc -- will finish it tonight | 13:36 |
minute | josch: nice! | 13:38 |
- mjw (QUIT: Ping timeout: 240 seconds) (~mjw@84.241.222.248) | 13:38 | |
- mlarkin_ (QUIT: Ping timeout: 260 seconds) (~mlarkin@syn-076-081-194-027.biz.spectrum.com) | 13:40 | |
+ mlarkin (~mlarkin@syn-076-081-194-027.biz.spectrum.com) | 13:47 | |
- qbit (QUIT: Remote host closed the connection) (~qbit@user/qbit) | 14:03 | |
+ ericsfraga (~user@2a00:23cc:b470:8401:385d:d999:f68:c08d) | 14:04 | |
+ qbit (~qbit@user/qbit) | 14:06 | |
- paperManu (QUIT: Ping timeout: 252 seconds) (~paperManu@64.58.44.160) | 14:13 | |
josch | yeah well as you've said above it is all not very optimal. The restriction seems to have a long history. Here is the commit that introduced it in 2017: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/24928d6b6fa1cde3312bcf63e4e14d7003aadc69 | 14:27 |
josch | or here the first mention in pipewire: https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/9bc29b4b37f9a1bf544e84058c16acd8b94ef70b | 14:30 |
josch | this sounds like there is a problem when running the service as root and at the same time running it as non-root but since running it as root is discouraged, this probably won't change upstream | 14:30 |
+ paperManu (~paperManu@modemcable141.205-200-24.mc.videotron.ca) | 14:34 | |
+ mjw (~mjw@84.241.222.248) | 14:47 | |
chorc | hi everybody | 16:04 |
chorc | I'm wondering, is it a bug that /sys/class/power_supply/BAT0/status shows "Charging" even when the gauge is at 100% ? | 16:05 |
gordon1 | chorc: pocket or classic? what current_now is showing? | 16:13 |
- mjw (QUIT: Ping timeout: 240 seconds) (~mjw@84.241.222.248) | 16:14 | |
chorc | gordon1: Pocket rk3588, current_now shows 787000 | 16:15 |
gordon1 | no idea about pocket, but if charging current is non-zero then i guess it is charging it | 16:15 |
gordon1 | unless it shows total current | 16:16 |
chorc | it goes to negative when I unplug, I think it | 16:16 |
chorc | is total current | 16:16 |
chorc | I'm wondering if it's still charging, or just LPC kernel module reports it incorrectly | 16:19 |
- jogu (QUIT: Remote host closed the connection) (~jogu@user/jogu) | 16:24 | |
ch | the charging status bits from the charging chip are not exposed over that interface. if you really want to know then i think you can check on the serial | 16:26 |
+ jogu (~jogu@user/jogu) | 16:27 | |
- jogu (QUIT: Remote host closed the connection) (~jogu@user/jogu) | 16:27 | |
chorc | ch: thank you, I will give it a shot | 16:32 |
chorc | I think it stops charging at some point after charge hits 100%, because I can see on OLED that the current dips to around 550 mA, while normally its around 750 mA while charging | 16:36 |
erle | a question of understanding: is the firmware for the standalone kbd and the internal one exactly the same? as in: i only need to build one keyboard.hex to flash it to both? | 16:40 |
gordon1 | i think people here were complaining about accidentally flashing standalone firmware onto reform and being unable to turn it on, so i assume those are different | 16:41 |
erle | btw, i have researched the OOM conditions that lead to hangs on imx8mq with vivante GPU: turns out regular OOM can hang the thing, but it's unlikely. what reliably produces a hang though is allocating texture memory. | 16:42 |
erle | i suspect that not all of the texture memory is immediately reclaimed. | 16:42 |
erle | and at one point you then have a “huh, i am retrying #PF forever because OOM condition” (i have not yet understood the full extent of this, but it seems like a Very Bad Thing™) | 16:43 |
minute | erle: there's also "CMA", not sure how much its size plays into this (can be configured) | 16:53 |
+ reform11411 (~stephano@71.238.14.13) | 17:03 | |
- reform11411 (QUIT: Client Quit) (~stephano@71.238.14.13) | 17:04 | |
+ stephano (~stephano@71.238.14.13) | 17:05 | |
erle | minute sorry, what exactly is “CMA” the abbreviation for? | 17:08 |
erle | also, as i understand it, an OOM condition should *never* escape a page fault handler. but i'm no kernel programmer. | 17:09 |
minute | https://developer.toradex.com/software/linux-resources/linux-features/contiguous-memory-allocator-cma-linux/ | 17:09 |
erle | thx! | 17:09 |
minute | erle: yeah GPU drivers tend to mess up things that they shouldn't | 17:09 |
minute | https://lwn.net/Articles/486301/ | 17:10 |
erle | oh neat, so i *could* mess with the device tree to basically reserve more memory for the kernel? | 17:10 |
erle | minute i'll read this. thanks a lot. | 17:11 |
minute | erle: for specific kernel things, i know that etnaviv uses this area for allocations (but idk if for all allocations) | 17:13 |
erle | do you have any idea how to track what kernel driver is using how much memory? that way i could exclude/verify leaks in etnaviv. | 17:15 |
minute | i did a shake test of mnt reform next https://mastodon.social/@mntmn/115271070708881562 | 17:15 |
erle | like, i usually use htop, but idk how to track per-driver (if tthat is at all possible) | 17:15 |
minute | erle: idk... maybe one of the kernel's tracing frameworks can do this | 17:16 |
erle | Rugged Reform NEXT when? xD | 17:17 |
minute | https://github.com/ryncsn/memstrack | 17:17 |
erle | reminds me of a girl i went to school with, she had a toughbook | 17:17 |
erle | she said she got it from her father who used to travel through africa | 17:17 |
minute | ^-- this could do the job, the example screenshot even has drm_ stuff | 17:17 |
erle | allegeldy you could just throw the toughbook on the back of a pickup truck like a suitcase and it would be fine | 17:17 |
ch | shake shake shake | 17:18 |
erle | thx! | 17:18 |
minute | also i found https://docs.kernel.org/dev-tools/kmemleak.html but don't know anything about it yet | 17:18 |
minute | erle: i think a TPU (a type of rubber) sleeve for the next should do the job | 17:18 |
erle | well i can google stuff myself, so i prefer advice from people who have done something like that already. maybe austriancoder can help me with that at some point (when personal time allows it). | 17:18 |
erle | but i'll check out those two | 17:19 |
minute | erle: maybe ask in a specific channel then | 17:19 |
minute | erle: and not here :3 | 17:19 |
minute | kthxbye | 17:19 |
erle | well i thought it is highly likely that people here had tracked down issues like that | 17:19 |
erle | given the users that buy reform :P | 17:19 |
erle | but i'll ask in #etnaviv | 17:20 |
chorc | erle: I've seen those at work sites, they are tough indeed; it was esp impressive because we all used spinning rust back then | 17:20 |
erle | chorc older ipods used spinning rust too! | 17:20 |
erle | the thicker ones had twice the capacity | 17:20 |
sigrid | my version of mnt reform toughbook is mnt reform wrapped in a thick hoodie inside my backpack | 17:20 |
erle | LMAO | 17:20 |
minute | that's what i mean... reforms are already quite tuff | 17:21 |
erle | yeah, i am pretty sure that a fall from a desk should be survivable due to the case. meanwhile, plastic-case laptops might get dents or lose parts. | 17:22 |
erle | i will not try this | 17:22 |
chorc | erle: I'm using that old ipod daily, for 10ish years (but it has flash memory since pandemc I think) | 17:22 |
erle | recently on the berlin subway some woman … i think she tried to swat closed my display for some reason but just slightly hurt herself in the process and fucked off. | 17:23 |
erle | i can't read minds, but i kinda suspect she did not expect to hit metal | 17:24 |
chorc | I think reforms might be too tough :) e.g. my oldest daugher really likes the pocket (I might have to order second one), but I'm afraid she'll drop it onher fit, she's a bit clumsy | 17:26 |
chorc | s/fit/feet/ | 17:26 |
erle | “too tough” can indeed be a thing for devices that are dropped a lot | 17:27 |
erle | i remember that older phones would often just crack the plastic case and not the display | 17:28 |
erle | but idk maybe that's a display technology thing and not a “the kinetic energy needs to go somewhere” thing | 17:28 |
chorc | she went through 2 thinkpads x260 in 3 years (one was dropped on concrete, very close to her feet) | 17:30 |
- ericsfraga (QUIT: Quit: ERC 5.6.1-git (IRC client for GNU Emacs 31.0.50)) (~user@2a00:23cc:b470:8401:385d:d999:f68:c08d) | 17:38 | |
erle | chorc i used to have one of these. nice machine, but as with all newer thinkpads, the keyboard doesn't last very long and the frame eventually bends. | 17:45 |
- stephano (QUIT: Quit: byeee) (~stephano@71.238.14.13) | 17:45 | |
erle | i doubt the reform 2 aluminium frame will bend | 17:45 |
erle | and the keyboard is amazing | 17:45 |
+ mjw (~mjw@178.230.141.196) | 17:50 | |
+ plomtest (~plom@user/plomtest) | 17:55 | |
- plomtest (QUIT: Remote host closed the connection) (~plom@user/plomtest) | 17:55 | |
chorc | erle: yes, the keyboard sucks, but those are cheap, basically like consumables around our household | 17:56 |
+ plomtest (~plom@user/plomtest) | 17:56 | |
chorc | the classic I probably could not justify myself, but more Pockets - sure) | 17:56 |
- mjw (QUIT: Read error: Connection reset by peer) (~mjw@178.230.141.196) | 18:02 | |
+ mjw (~mjw@178.230.68.87) | 18:03 | |
- mjw (QUIT: Ping timeout: 240 seconds) (~mjw@178.230.68.87) | 18:15 | |
josch | chorc: my daughter also loves the pocket -- the keyboard size fits her hands really well :) | 18:37 |
josch | erle: did you hear of when i accidentally dropped my pocket from more than 2 meter height a few weeks ago? Nothing broke :) | 18:38 |
erle | josch i did not. but good to know! | 18:39 |
erle | chorc it is indeed the case that i view thinkpads as consumables as well. the newer ones, though. the ones from the 2000 era basically last forever (i am typing from one). | 18:39 |
chorc | josch: similar case here, and now she wants a purple one (I have black version) | 18:40 |
+ MartiniMoe (~moe@p200300eecf1ededbc2e2216f4f0301db.dip0.t-ipconnect.de) | 18:41 | |
josch | the "problem" with the purple one is that now i need more purple hardware :D | 18:41 |
erle | i have a purple keyboard :3 | 18:44 |
chorc | yeah, I really like purple as well (I've started my career around Sun hardware that was sporting all kind of shades of purple), I'm not sure why I requested a black one | 18:44 |
erle | btw, did anyone else experiment with adding lego to their reform? | 18:46 |
erle | i used the lego base plates from the DOTS set that you can glue to flat surfaces | 18:47 |
josch | lol DOTS useful for something after all confirmed ;) | 18:48 |
erle | josch my keychain has a DOTS label | 18:49 |
erle | josch i am kinda sad that lego has stopped selling DOTS because the base plate ideas are great: the base plates that you can glue to flat surfaces, the keychain, the flexible base plate that you can sew on clothing, the base plate wrist bracelet … | 18:51 |
erle | i mean the keyring label, not keychain | 18:51 |
+ mjw (~mjw@195.23.216.83) | 19:28 | |
- MartiniMoe (QUIT: Remote host closed the connection) (~moe@p200300eecf1ededbc2e2216f4f0301db.dip0.t-ipconnect.de) | 19:53 | |
- erle (QUIT: Quit: K-lined) (~erle@user/erle) | 20:35 | |
josch | minute: i finally found the time to test it and this gives screenreader audio again in the reform-setup-wizard: https://source.mnt.re/reform/reform-system-image/-/merge_requests/138 | 21:02 |
josch | minute: unless you have objections for this way of doing it, I'll prettify this solution and then merge to main | 21:02 |
- kfx (QUIT: Ping timeout: 248 seconds) (~kfx@wopr.sciops.net) | 21:11 | |
- gustav2 (QUIT: Quit: Quit) (~gustav@c-78-82-55-162.bbcust.telenor.se) | 22:15 | |
- GNUmoon2 (QUIT: Remote host closed the connection) (~GNUmoon@gateway/tor-sasl/gnumoon) | 22:42 | |
+ GNUmoon2 (~GNUmoon@gateway/tor-sasl/gnumoon) | 22:43 | |
- paperManu (QUIT: Ping timeout: 240 seconds) (~paperManu@modemcable141.205-200-24.mc.videotron.ca) | 22:45 | |
+ paperManu (~paperManu@64.58.44.160) | 23:28 | |
minute | josch: many thanks, that looks minimal invasive, you have my blessing ^^ | 23:31 |
minute | unrelated: i wonder why there is no debian package that does "flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" | 23:42 |
minute | hm, currently on reform next and realizing that even though eurkey is set up, "alternate character key" is unset in gnome (so it doesn't work correctly | 23:49 |
minute | system image is recent-ish | 23:49 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!