| 30 Jul 2022 |
@linus:schreibt.jetzt | yeah that take is lukewarm at best :p | 18:59:46 |
@elvishjerricco:matrix.org | Shoot I don't even see a reason not to do it immediately | 19:00:21 |
K900 | I actually don't think doing it now is a great idea because there will probably be one-liner fixes and having to do the whole release dance is awkard | 19:00:28 |
@linus:schreibt.jetzt | idk, having it in nixpkgs has its advantages too | 19:00:31 |
K900 | * I actually don't think doing it now is a great idea because there will probably be one-liner fixes and having to do the whole release dance is awkawrd | 19:00:31 |
K900 | * I actually don't think doing it now is a great idea because there will probably be one-liner fixes and having to do the whole release dance is awkward | 19:00:34 |
@linus:schreibt.jetzt | yeah that | 19:00:36 |
@elvishjerricco:matrix.org | ah fair enough | 19:00:42 |
@linus:schreibt.jetzt | and also running tests is really really easy currently | 19:00:59 |
@linus:schreibt.jetzt | change the code, nix-build nixos/tests/... | 19:01:08 |
K900 | That can be fixed if we expose make-initrd-ng as a top level package in nixpkgs | 19:01:46 |
K900 | Then we can overlay that from the make-initrd-ng repo | 19:01:55 |
K900 | And just run the same tests | 19:02:00 |
@elvishjerricco:matrix.org | yea. And it already is a top level package | 19:02:13 |
@elvishjerricco:matrix.org | Do we have any NixOS tests for building cross things? Or is cross considered not officially supported? | 19:08:27 |
@elvishjerricco:matrix.org | On an unrelated note, I think networkctl doesn't work if you don't have dbus, which makes messing with networking in initrd kind of annoying... Probably not worth including dbus over, but noteworthy | 19:25:40 |
K900 | There's something built on Hydra for mobile | 19:28:17 |
K900 | But I'm not sure how much or if there's any actual VM tests there | 19:28:30 |
| 31 Jul 2022 |
Mic92 | In reply to @janne.hess:helsinki-systems.de Mic92: do you have more insight on that? K900: It's reading the whole file into memory. | 05:41:17 |
Mic92 | See this: https://github.com/NixOS/patchelf/blob/master/src/patchelf.cc#L230 | 05:41:34 |
K900 | Oh yeah, I just meant that when it needs a value, it converts the endianness in place | 05:41:46 |
K900 | So if you miss calling the conversion function somewhere, it explodes in some subtle way | 05:42:56 |
Mic92 | I don't think rust would be a good choice at the time. patchelf is used in many package manager for bootstrapping and Rust would be a heavy bootstrap dependency | 05:43:30 |
Mic92 | It does not even use a sane build system like meson or cmake for the same reason. | 05:43:59 |
K900 | Yeah, that was more of a joke | 05:44:04 |
K900 | Rust also isn't really a (that) good fit for doing this kind of low level byte-twiddling | 05:45:08 |
K900 | Cause it is kind of inherently unsafe | 05:45:34 |
Mic92 | the endianess conversion is actually mostly done in this helper: https://github.com/NixOS/patchelf/blob/master/src/patchelf.cc#L97 so most of the code does not have to care about it. | 05:46:42 |
K900 | Yeah, but it has to care about calling the helper every time | 05:49:09 |
@elvishjerricco:matrix.org | So one thing I didn't think of during the strip discussion yesterday: The old initrd unconditionally strips. So the question about if we've been adding an undue binutils dependency for most people's rebuilds was moot :P | 12:51:45 |