!djTaTBQyWEPRQxrPTb:nixos.org

Nixpkgs Architecture Team

217 Members
https://github.com/nixpkgs-architecture, weekly public meetings on Wednesday 15:00-16:00 UTC at https://meet.jit.si/nixpkgs-architecture53 Servers

Load older messages


SenderMessageTime
10 Jun 2024
@mjolnir:nixos.orgNixOS Moderation Bot unbanned @jonringer:matrix.org@jonringer:matrix.org.00:17:07
@willbush:matrix.orgwillbushI also missed :(. I have had other things come up, but I still want to help out. I'm hoping to be more active next month. Feel free to reschedule Jit.si meet without my crab fit schedule :)22:03:26
11 Jun 2024
@aliarokapis:matrix.orgAlexandros LiarokapisHi all. Not sure if this is the proper Room to discuss this. I was thinking, maybe it would be worth enabling patchelf to change hard-coded paths in the text segment to relative ones, then provide symlinks in the $out folder. This is an alternative to builfFHSEnv that should also work on Darwin (not with patchelf but similar) not all of them obviously, something like by providing a map of transforms it would also help with manual dlopens10:01:42
@Minijackson:matrix.orgMinijacksonCan it work? Doesn't this mess up pointers to the text segment?11:10:54
@nbp:mozilla.orgnbpMost of the time no.12:04:01
@nbp:mozilla.orgnbp * (patching path of different length) Most of the time no.12:04:30
@Minijackson:matrix.orgMinijacksonhow so? I would assume that the program knows the start address and the length of the string, so we can't put longer strings without having to shift the rest, and shorter strings aren't guaranteed to work either12:08:12
@nbp:mozilla.orgnbpthe program yes, the patching tool probably does not.12:23:58
@nbp:mozilla.orgnbpthen you have different encoding, depending on the language, and other variables that would have to be shifted otherwise, assumption on the addresses …12:25:46
@Minijackson:matrix.orgMinijackson
In reply to @nbp:mozilla.org
the program yes, the patching tool probably does not.
I'm not sure I understand this sentence. Isn't the point patching programs?
12:32:24
@nbp:mozilla.orgnbpWell patchelf is patching the header of the ELF binary, but it is assumed unsafe to attempt patching random strings, unless you are sure that they have the same length.12:37:40
@nbp:mozilla.orgnbp The replaceDependencies is the closest thing there is to replacing raw path to the nix store by another one in the nix-store, but beware that if the version changes from 0.4.0 to 0.4.0a this would cause a lot of issues. 12:39:24
@Minijackson:matrix.orgMinijackson so for the solution proposed by Alexandros Liarokapis, unless the paths are of the same length, there's quite a chance that it would lead to bug, then 12:44:24
@aliarokapis:matrix.orgAlexandros LiarokapisConverting longer paths to shorter relative ones should work12:44:27
@aliarokapis:matrix.orgAlexandros LiarokapisHmm yea I guess it depends on the encoding12:44:46
@aliarokapis:matrix.orgAlexandros LiarokapisProbably only works for c strings12:44:52
@Minijackson:matrix.orgMinijackson if the path are shorter, it could be padded with /, but seems hacky x) 12:44:57
@Minijackson:matrix.orgMinijackson
In reply to @aliarokapis:matrix.org
Probably only works for c strings
even then, depending on compiler optimisations and other factors, the length of the string might be assumed
12:45:33
@aliarokapis:matrix.orgAlexandros LiarokapisPadding with null strings is also possible12:45:34
@aliarokapis:matrix.orgAlexandros Liarokapis* Padding with null chars is also possible12:45:49
@Minijackson:matrix.orgMinijackson
In reply to @aliarokapis:matrix.org
Padding with null chars is also possible
not sure, if the compiler optimises printf("some string") to write(stdout, "some string", 11), replacing some string with something shorter but null padded will print null bytes to stdout
12:46:43
@nbp:mozilla.orgnbp
In reply to @aliarokapis:matrix.org
Converting longer paths to shorter relative ones should work
No, Pascal for example encode the length next to the string.
12:53:00
@nbp:mozilla.orgnbpSome compilers could bake-in strlen of constants at compile time.12:55:12
@willbush:matrix.orgwillbush infinisil: Philip Taron (UTC-8): I've been kinda wanting a place to share and discuss Rust blog posts / news with you guys. Any ideas? 13:08:56
@aloisw:kde.org@aloisw:kde.org
In reply to @nbp:mozilla.org
The replaceDependencies is the closest thing there is to replacing raw path to the nix store by another one in the nix-store, but beware that if the version changes from 0.4.0 to 0.4.0a this would cause a lot of issues.
This is why it enforces the same length already.
14:10:04
@philiptaron:matrix.orgPhilip Taron (UTC-8)I'm in most of the Matrix rooms, and on NixOS discourse. If you want something else, my email is philip.taron@gmail.com 🙂14:57:17
14 Jun 2024
@infinisil:matrix.orginfinisilWeekly office hour now :) https://meet.jit.si/nixpkgs-architecture17:57:50
@infinisil:matrix.orginfinisil Cc willbush Philip Taron (UTC-8) Dominic Mills 17:59:13
@infinisil:matrix.orginfinisil With Will and Dominic in the call I created a bunch of PRs improve some misc stuff in Nixpkgs, mostly churning this issue down :) 19:50:53
@infinisil:matrix.orginfinisilIf anybody wants to help out, feel free to fix more cases mentioned in that issue :D19:51:31

Show newer messages


Back to Room ListRoom Version: 9