20 Jun 2025 |
emily | it's not really silent, is it? that's why we have CI/ofborg | 18:11:22 |
emily | there's no way to know whether something will build on a platform before something actually attempts the build | 18:11:37 |
John Ericson | https://pad.lassul.us/zvvXlsRCRVeXU48WWaCpDg | 22:35:16 |
John Ericson | We on the SC are thinking about this as a possible project to organize and fund on the foundation level | 22:35:51 |
John Ericson | were curious what the Stdenv Team thinks about this | 22:36:08 |
John Ericson | CC tomberek | 22:36:11 |
John Ericson | to be clear, at this point, we're thinking more about the first step of a relocatable store | 22:36:42 |
emily | it was discussed here recently :) | 22:41:02 |
emily | here | 22:41:16 |
emily | it's something I've thought about before, there are some tricky issues I outlined, I expect somewhat invasive patching across the tree would be necessary, but the initial hurdles are more writing loader code etc. | 22:41:52 |
emily | I think it would be feasible but hard (and some packages may never work) | 22:42:19 |
emily | I see this came up as DT_INTERP in the doc. I think you can just solve the problem by avoiding the kernel's code for it as I outlined earlier. | 22:43:02 |
emily | IIRC #!/usr/bin/env -S is not portable wrt macOS so may not be a good solution for shebangs. | 22:43:44 |
emily | might be workaroundable. | 22:43:58 |
John Ericson | oh my bad | 22:44:08 |
John Ericson | I was scrolling around and didn't see it yet | 22:44:14 |
John Ericson | with the static PIE? | 22:45:56 |
John Ericson | that does sound nice | 22:46:14 |
John Ericson | I'm hoping if we actually do it, we can petition POSIX to standardize more $ORIGIN | 22:46:42 |
John Ericson | so the cure gets better, longer term | 22:46:51 |
emily | you just need loader code that resolves out the interp path and does exec . hopefully. unless that doesn't quite do the right thing in which case you need to load the interp into memory and jump into it, which would be awful | 22:47:17 |
emily | anyway it's definitely prototypeable I think and I've toyed with the idea but it'd take a lot of time and not sure the appetite for the requisite patching would be there in Nixpkgs | 22:47:58 |
John Ericson | I have to leave now, but perhaps the first thing to pay for is some sort of demo to gauge feasibility / unseamliness of hacks | 22:48:05 |
John Ericson |
not sure the appetite for the requisite patching would be there in Nixpkgs
The hope for that is to gameify it a bit with "are we relocatable yet?" etc.
| 22:48:39 |
John Ericson | I am more confident on that part, if the initial prototype works, and it takes less skill to do the patching using previously-invented techniques than come up with the techniques | 22:49:32 |
emily | well the problem is that many ecosystems may extensively use absolute paths | 22:51:45 |
emily | e.g., in rigid non-programmable data formats | 22:51:52 |
emily | so it is possible that it would require extensive patching that would be a maintenance burden for updates, in the case that upstream is not interested in changing that | 22:52:30 |
John Ericson | @emilazy:matrix.org so I view this push as kind of trying to get C libraries for FFI to work | 23:01:19 |
John Ericson | Like make us the go-to way to build the native deps for python packages or whatever | 23:02:13 |