💾 Archived View for gemini.ctrl-c.club › ~phoebos › logs › kisslinux-2022-10-06.txt captured on 2023-01-29 at 03:45:10.

View Raw

More Information

-=-=-=-=-=-=-

[2022-10-06T02:21:56Z] <wael[m]> hi
[2022-10-06T04:54:56Z] <testuser[m]> Hi
[2022-10-06T07:09:31Z] <testuser[m]> where did ioraff go
[2022-10-06T07:10:09Z] <testuser[m]> oh he's back
[2022-10-06T07:43:23Z] <wael[m]> did he go inactive?
[2022-10-06T09:09:19Z] <testuser[m]> is using awk forbidden in KISS
[2022-10-06T09:09:39Z] <testuser[m]> pkg manager 
[2022-10-06T09:09:56Z] <testuser[m]> awk '{print $2}' is much faster than while read -r _ f2
[2022-10-06T09:24:51Z] <testuser[m]> https://codeberg.org/kiss-community/kiss/pulls/85/files
[2022-10-06T09:42:10Z] <wael[m]> how fast
[2022-10-06T09:56:41Z] <wael[m]> btw how does line 8 work in the PR? wouldn't it do for example a/manifest b c d e...
[2022-10-06T09:57:26Z] <wael[m]> also you can't do field argument with grep instead?
[2022-10-06T10:06:39Z] <testuser[m]> splitting
[2022-10-06T10:14:57Z] <wael[m]> what
[2022-10-06T10:15:09Z] <wael[m]> yes is it not possible in grep
[2022-10-06T10:42:17Z] <testuser[m]> illiliti: https://codeberg.org/kiss-community/init/commit/bcf5fbf8ab30c95d4c6a407d8afef1d0a50eddd2 ?
[2022-10-06T10:42:21Z] <testuser[m]> was kall useless all along
[2022-10-06T12:23:19Z] <illiliti> yes
[2022-10-06T12:24:02Z] <wael[m]> hi illiliti
[2022-10-06T12:24:48Z] <illiliti> hi
[2022-10-06T12:26:23Z] <illiliti> testuser[m]: i would use awk only as a last resort
[2022-10-06T12:26:46Z] <illiliti> also speed of while read depends on shell
[2022-10-06T12:40:19Z] <testuser[m]> illiliti: any idea why copy_file_range is broken? The manpage says "First support for cross-filesystem copies was introduced in 5.3.  Older kernels will return -EXDEV when cross-filesystem copies are attempted." but im getting EXDEV on 5.19.9+ when copying from btrfs/ext4 to tmpfs
[2022-10-06T12:40:26Z] <testuser[m]> this breaks toybox cp 
[2022-10-06T12:41:23Z] <testuser[m]> reproducible code is in the manpage itself
[2022-10-06T12:46:12Z] <illiliti> hm
[2022-10-06T12:46:17Z] <illiliti> works for me on zfs
[2022-10-06T12:47:24Z] <testuser[m]> yea its per filesystem thing
[2022-10-06T12:47:34Z] <testuser[m]> clarified on #musl
[2022-10-06T12:48:10Z] <testuser[m]> so bad
[2022-10-06T12:49:04Z] <wael[m]> btrfs moment
[2022-10-06T12:50:03Z] <testuser[m]> no
[2022-10-06T12:50:18Z] <wael[m]> what moment is it
[2022-10-06T12:50:25Z] <testuser[m]> linux moment
[2022-10-06T12:50:32Z] <wael[m]> linux moment
[2022-10-06T12:50:33Z] <illiliti> i think toybox should implement proper fallback
[2022-10-06T12:50:59Z] <wael[m]> how am I supposed to continue even trying toybox now if cp can't even cp
[2022-10-06T12:51:16Z] <testuser[m]> its all filesystems moment that are not in (nfs, fuse, cifs, ceph)
[2022-10-06T12:51:22Z] <testuser[m]> grep -r '.copy_file_range = ' fs/
[2022-10-06T12:51:27Z] <testuser[m]> and zfs*
[2022-10-06T13:07:40Z] <testuser[m]> illiliti: btw why do you use zfs? any specific features you require?
[2022-10-06T13:10:28Z] <illiliti> its encryption is faster than luks
[2022-10-06T13:11:28Z] <illiliti> also zfs is the only way to have FDE without lvm
[2022-10-06T13:11:54Z] <illiliti> lvm is crap, i hate it
[2022-10-06T13:15:30Z] <illiliti> that's main reasons. i think i also should mention that i never had data corruption with zfs
[2022-10-06T13:16:05Z] <testuser[m]> sounds good
[2022-10-06T13:16:08Z] <illiliti> unlike luks+<put your in-tree fs>
[2022-10-06T13:17:18Z] <illiliti> yeah that's surprising, any in-tree fs supposed to be more stable, but in fact it isn't
[2022-10-06T15:27:56Z] <wael[m]> TIL about expand(1p)
[2022-10-06T15:27:57Z] <wael[m]> converts tabs to spaces
[2022-10-06T15:31:41Z] <testuser[m]> illiliti: why exactly is it required to temporarily run and kill mdev during boot?
[2022-10-06T15:32:13Z] <testuser[m]> If the service is going to be started anyway
[2022-10-06T15:41:29Z] <illiliti> because service manager would run device manager asynchronously
[2022-10-06T15:42:08Z] <illiliti> which might lead to race condition and broken permissions in /dev and other nasty stuff
[2022-10-06T15:44:02Z] <illiliti> i know this shit looks like a hack
[2022-10-06T15:45:00Z] <illiliti> but since we don't use systemd, where init and service manager are merged, we can't do better
[2022-10-06T15:46:00Z] <illiliti> this could be a less hacky if there were a portable way to passthrough the control of existing process to service manager
[2022-10-06T15:46:11Z] <illiliti> this way we could avoid killing device manager
[2022-10-06T15:47:22Z] <illiliti> to be clear, we can't make this situation better without hardcoding non-portable things
[2022-10-06T15:52:23Z] <testuser[m]> Hmm
[2022-10-06T15:59:04Z] <testuser[m]> Thoughts about switching to s6?
[2022-10-06T16:01:21Z] <wael[m]> Yes
[2022-10-06T16:01:46Z] <wael[m]> its very good excluding the fact it needs skalib and execline
[2022-10-06T16:06:44Z] <testuser[m]> Bruh do u even know what s6 is
[2022-10-06T16:07:01Z] <wael[m]> pretty damn good service manager or something
[2022-10-06T16:08:56Z] <noocsharp> i've been using artix s6 since i moved away from kiss and it's worked fine, barring the fact that many useful things are systemd services
[2022-10-06T16:09:27Z] <testuser[m]> U mean that as an artix packaging thing right
[2022-10-06T16:09:45Z] <testuser[m]> Useful things being systemd
[2022-10-06T16:10:25Z] <wael[m]> artix has packages that are for the init installed in the system, like networkmanager-s6 for example
[2022-10-06T16:10:30Z] <wael[m]> unless you use arch repos ontop of artix's
[2022-10-06T16:10:49Z] <noocsharp> yeah, it's an artix/arch problem not an s6 one
[2022-10-06T16:12:05Z] <testuser[m]> s6 is good for everything nontrivial like dependencies and stuff, but UX is confusing compared to runit 
[2022-10-06T16:12:12Z] <illiliti> s6 is nice, but if we're going to switch, should we keep init agnostic?
[2022-10-06T16:12:30Z] <testuser[m]> Also it's not clunky at all, like with runit if I'd restart a user's runsvdir, all subprocess would just get orphaned or something
[2022-10-06T16:12:38Z] <illiliti> or support s6 as a sole provider?
[2022-10-06T16:12:39Z] <testuser[m]> Maybe busy box bug or something
[2022-10-06T16:13:21Z] <testuser[m]> Things get hackier the more generic you try to make them
[2022-10-06T16:13:30Z] <testuser[m]> Look at dylan's current branch
[2022-10-06T16:14:01Z] <illiliti> yep, hence my question
[2022-10-06T16:14:17Z] <testuser[m]> this approach is better https://github.com/kisslinux/repo/pull/325#issuecomment-913930319
[2022-10-06T16:14:27Z] <testuser[m]> Still won't be plug and play 
[2022-10-06T16:14:29Z] <testuser[m]> but better
[2022-10-06T16:17:39Z] <testuser[m]> s6 as default + modular scripts 
[2022-10-06T16:18:04Z] <testuser[m]> s6 also has a catchall logger so every single service is logged regardless of an explicit logger
[2022-10-06T16:18:06Z] <illiliti> what about service files
[2022-10-06T16:18:18Z] <testuser[m]> they can be mostly reused
[2022-10-06T16:18:24Z] <illiliti> it's a lot of work to make them generic
[2022-10-06T16:18:58Z] <testuser[m]> They're reusable apart from the directory they're put in
[2022-10-06T16:19:18Z] <testuser[m]> like u can sym link run files to s6 "up" file
[2022-10-06T16:20:21Z] <illiliti> what if service need more functionality than just "run and forget"
[2022-10-06T16:20:27Z] <illiliti> e.g dependencies
[2022-10-06T16:26:56Z] <testuser[m]> Then only dependencies part needs to be duplicated, eg in docker it needs cgroups. So the generic launch script can just do `cgroups_mounted || error` and 
[2022-10-06T16:27:19Z] <testuser[m]> deps will be handled by individual sv manager
[2022-10-06T16:27:26Z] <testuser[m]> But this is a problem if sv manager doesn't have that concept
[2022-10-06T16:27:43Z] <illiliti> maybe we should just keep things simple?
[2022-10-06T16:28:13Z] <illiliti> hardcode one provider but keep scripts simple, so user can replace e.g s6 with runit
[2022-10-06T16:28:30Z] <illiliti> no need for configuration, frameworks and stuff
[2022-10-06T16:30:10Z] <illiliti> yes, one would have to fork init for that
[2022-10-06T16:30:38Z] <illiliti> and rewrite it a bit
[2022-10-06T16:32:32Z] <testuser[m]> We can do that minus the forking init part by making it into more functions
[2022-10-06T16:34:45Z] <illiliti> i don't see how it would help
[2022-10-06T16:39:17Z] <testuser[m]> eg u might not want to run hooks in /etc/rc.d, or not run an emergency shell when every command fails because your init system already has a better mechanism for that
[2022-10-06T16:39:26Z] <testuser[m]> or mount /run because your init already does that
[2022-10-06T16:41:52Z] <illiliti> i see
[2022-10-06T16:42:02Z] <testuser[m]> Like I'm running s6 but I can't run rc.shutdown verbatim cuz it not only unmounts swap, but also handles sending of sig term / kill
[2022-10-06T16:42:20Z] <testuser[m]> tho with s6 everything would be rewritten
[2022-10-06T16:42:29Z] <testuser[m]> If it has to be idiomatic
[2022-10-06T16:42:34Z] <illiliti> but still i think that having single provider would be a lot simpler
[2022-10-06T16:42:50Z] <testuser[m]> like a single oneshot for each thing, eg devtmpfs, tmpfs, procfs etc.
[2022-10-06T16:42:51Z] <testuser[m]> But that seems unnecessary
[2022-10-06T16:43:22Z] <testuser[m]> Core stuff should be available before starting services
[2022-10-06T16:44:24Z] <testuser[m]> I mean all we have to do is change stuff like "log Killing everything; { kall 9; }" into `killall() { log "..."; kall ...; }`
[2022-10-06T16:45:44Z] <testuser[m]> I'll make POC tomorrow
[2022-10-06T16:45:44Z] <testuser[m]> For clearing it up
[2022-10-06T16:46:34Z] <illiliti> look what i mean
[2022-10-06T16:46:41Z] <illiliti> single provider(e.g s6) is better since we don't have to maintain all of this agnostic stuff
[2022-10-06T16:46:53Z] <illiliti> that would make init simpler and easier to understand, and it is actually KISS because user can easily fork it and make changes
[2022-10-06T16:47:29Z] <illiliti> direct support for multiple providers is too much complexity
[2022-10-06T16:48:23Z] <illiliti> you would have to be too "generic", that won't be KISS anymore
[2022-10-06T16:51:23Z] <illiliti> with single provider, we only guarantee that init will be simple
[2022-10-06T16:51:32Z] <illiliti> with multiple providers, we need configuration, frameworks, "genericness"
[2022-10-06T16:51:49Z] <illiliti> it's way too complex
[2022-10-06T16:53:23Z] <illiliti> it's also related to device manager, since it has same problem
[2022-10-06T16:55:42Z] <testuser[m]> Yea I agree with you, I'm not pushing for direct support of anything other than the default, just to make "porting" a little easier. Not adding any setup-specific hacks like case $mdev in udev mdev mdevd, or case $init in busybox, runit, s6, sinit, ...
[2022-10-06T16:56:05Z] <testuser[m]> Making init scripts into sort of a library
[2022-10-06T16:56:30Z] <testuser[m]> Only the bare minimum i.e whatever is present in current init, not services or anything
[2022-10-06T16:59:34Z] <wael[m]> testuser: have you taken a look at sysmgr?
[2022-10-06T17:01:55Z] <illiliti> porting is easy if things will be kept simple and hackable
[2022-10-06T17:03:04Z] <wael[m]> dilyn: why is toybox init unable to run /lib/init/rc.boot? if simply says its unable to run
[2022-10-06T17:03:25Z] <illiliti> forking is a perfectly valid approach here
[2022-10-06T17:04:38Z] <illiliti> we can even have default configurations for various inits as branches
[2022-10-06T17:04:52Z] <illiliti> e.g runit branch for runit support and so on
[2022-10-06T17:05:10Z] <illiliti> user just fork baseinit and change branch
[2022-10-06T17:05:37Z] <illiliti> imho this is very kiss approach
[2022-10-06T17:14:56Z] <testuser[m]> Hmm yeah, it allows to be more idiomatic too, according to init in use
[2022-10-06T17:15:08Z] <testuser[m]> init is like 50 lines of shell
[2022-10-06T17:15:17Z] <testuser[m]> i mean the scripts
[2022-10-06T17:24:27Z] <illiliti> yeah that's why configuration doesn't make sense
[2022-10-06T17:24:53Z] <illiliti> kiss is source-based. forking is easy here. we should exploit this
[2022-10-06T17:33:39Z] <testuser[m]> illiliti: then what about device manager udev configs 
[2022-10-06T17:36:02Z] <illiliti> i've changed my mind, as you see
[2022-10-06T17:36:30Z] <illiliti> i no longer think that we should support all possible device manager
[2022-10-06T17:36:50Z] <illiliti> by default - e.g via configuration
[2022-10-06T17:37:18Z] <illiliti> we should switch to mdevd as a sole provider of device manager
[2022-10-06T17:37:20Z] <wael[m]> just support the 'KISS'iest one and go with it
[2022-10-06T17:37:41Z] <wael[m]> mdevd, the one by creator of s6?
[2022-10-06T17:37:48Z] <illiliti> yep
[2022-10-06T17:38:31Z] <wael[m]> if we are going to switch to s6 might as well do the same for mdevd since dependencies
[2022-10-06T17:41:27Z] <illiliti> mdev.conf is simple enough, really. there's no reason to have abstraction over it
[2022-10-06T17:42:27Z] <illiliti> everyone who uses different device manager, can easily convert it to their format
[2022-10-06T17:42:47Z] <wael[m]> I love my smdev
[2022-10-06T17:43:10Z] <illiliti> keep using it
[2022-10-06T17:43:24Z] <testuser[m]> Ye I think we were going too much in the direction of accounting for all possible cases that could exist, not ones that actually do
[2022-10-06T17:43:34Z] <wael[m]> illiliti: why
[2022-10-06T17:45:02Z] <illiliti> what why? smdev is fine as device manager. if you'd like to use it, there's no lock-in
[2022-10-06T17:46:04Z] <wael[m]> fair
[2022-10-06T17:46:53Z] <illiliti> we should just keep things simple, so user can easily fork and switch components of the system
[2022-10-06T17:47:55Z] <illiliti> that's all we should care about. we shouldn't care about emulation, abstraction, configuration and all of this
[2022-10-06T17:51:38Z] <wael[m]> what about the rc.conf that baseinit used to utilize?
[2022-10-06T17:55:22Z] <testuser[m]> What was that even used for lol
[2022-10-06T17:55:55Z] <illiliti> to configure which service manager to use
[2022-10-06T17:56:00Z] <illiliti> we should drop it
[2022-10-06T17:56:22Z] <illiliti> unless it's used for something else
[2022-10-06T17:58:24Z] <testuser[m]> Um that file doesn't seem to be used at all in init -- no `var:-default` or `var:=default ` in scripts
[2022-10-06T18:00:28Z] <illiliti> it's used in master branch
[2022-10-06T18:42:45Z] <testuser[m]> Do kiss alternatives break if file contains ">" in name?
[2022-10-06T18:51:19Z] <illiliti> perhaps
[2022-10-06T18:57:40Z] <testuser[m]> So bad
[2022-10-06T18:57:44Z] <testuser[m]> Shell moment
[2022-10-06T18:58:11Z] <testuser[m]> I think there would be a ton of such bugs
[2022-10-06T19:10:22Z] <ehawkvu> I figured out a solution to the VERSION markers
[2022-10-06T19:11:12Z] <ehawkvu> https://raw.githubusercontent.com/ehawkvu/kiss-personal/master/bin/kiss-echecksum
[2022-10-06T19:24:37Z] <testuser[m]> https://codeberg.org/kiss-community/repo/issues/120
[2022-10-06T19:26:02Z] <illiliti> you're faster than me :)
[2022-10-06T19:33:49Z] <testuser[m]> https://codeberg.org/kiss-community/kiss/issues/87
[2022-10-06T22:35:57Z] <sad_plan> o/
[2022-10-06T22:36:17Z] <sad_plan> what would be the reason for /dev to be busy whenn mounting it on boot?