!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

931 Members
For people hacking on the Nix package manager itself194 Servers

Load older messages


SenderMessageTime
5 Mar 2026
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)The mounts there are quite messed up probably17:50:58
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)I’m no Linux guru though and haven’t looked at that code too closely, so I’m not sure how to go about fixing it. I think there was a fixme about using overlayfs for the relocated store IIRC17:53:00
@ysndr:matrix.orgysndr

Yea it’s user / mount namespace all the way.

At least root seems to not be mapper correctly (sudo is owned by nobody, as opposed to root)

17:57:42
@ysndr:matrix.orgysndr * Yea it’s user / mount namespace all the way.
At least root seems to not be mapped correctly (sudo is owned by nobody, as opposed to root)
17:57:47
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Ah do we not set up a proper uid_map?18:07:34
6 Mar 2026
@gilligan:matrix.orggilligan (he/him) joined the room.01:45:50
@azosion_:matrix.orgAzosion joined the room.03:32:29
@dramforever:matrix.orgdramforever there's no way to do this without running nix shell with root permissions 05:01:17
@dramforever:matrix.orgdramforeversee https://man7.org/linux/man-pages/man7/user_namespaces.7.html "In order for a process to write to the /proc/pid/uid_map", currently bullet 5, (b), bullet 105:02:16
@dramforever:matrix.orgdramforever * see https://man7.org/linux/man-pages/man7/user_namespaces.7.html "In order for a process to write to the /proc/pid/uid_map ...", currently bullet 5, (b), bullet 1 05:02:25
@dramforever:matrix.orgdramforeverand we have to be in a new user namespace to create a mount namespace and start mounting stuff05:03:36
@dramforever:matrix.orgdramforever *

see https://man7.org/linux/man-pages/man7/user_namespaces.7.html "In order for a process to write to the /proc/pid/uid_map ...", currently bullet 5, (b), bullet 1

The data written to uid_map (gid_map) must consist of a single line that maps the writing process's effective user ID (group ID) in the parent user namespace to a user ID (group ID) in the user namespace.

05:04:37
@dramforever:matrix.orgdramforever side note, don't you love it when all you need to understand is 1 and 2 and 3 and ( 4(a) or 4(b) ) and ( 5(a) or ( 5(b)1 and 5(b)2 and 5(b)3 ) ) 05:06:11
@dramforever:matrix.orgdramforever so just, to clarify, putting aside everything else, 5(b)1 says that if you don't have CAP_SETUID, then you can only map yourself in the parent userns to any uid in the child userns. everyone else in the parent userns becomes nobody in the child 05:07:56
@dramforever:matrix.orgdramforever * so just, to clarify, putting aside everything else, 5(b)1 says that if you don't have CAP_SETUID, then you can only map yourself in the parent userns to any uid in the child userns. everyone else in the parent userns becomes nobody in the child userns 05:08:26
@dramforever:matrix.orgdramforever * so just, to clarify, putting aside everything else, 5(b)1 says that if you don't have CAP_SETUID in the parent userns, then you can only map yourself in the parent userns to any uid in the child userns. everyone else in the parent userns becomes nobody in the child userns 05:08:36
@rcchuah:matrix.orgRC Chuah joined the room.17:45:26
@azosion_:matrix.orgAzosionHey yall, via nix I installed "jasp-desktop", and it installed the binary "JASP" (in all caps), I'm pretty sure that most binaries are not capitialized, so is this a problem I could make a PR for, or is this normal for nix? (It is just a bit confusing that I cant just run the program with "jasp").18:23:47
@k900:0upti.meK900That's mostly up to upstream18:38:24
@ctheune:matrix.flyingcircus.ioTheuni changed their display name from Christian Theune to Theuni.19:57:47
7 Mar 2026
@eveeifyeve:matrix.orgeveeifyeveDid I hear someone say freebsd sandbox building?16:22:04
8 Mar 2026
@ss:someonex.netSomeoneSerge (matrix works sometimes) changed their display name from SomeoneSerge (back on matrix) to SomeoneSerge (matrix works sometimes).23:28:36
9 Mar 2026
@gerasti:matrix.orgsantg3ar changed their display name from gerasti to santg3ar.22:05:42
10 Mar 2026
@fzakaria:one.ems.hostfzakaria

Sharing this from Spack (spack.io) how they handle OpenGL or runtime type library dependencies:

If a binary is built in a CI/CD pipeline at /opt/spack/build/... and you download it to /home/user/super_long_project_name/spack/..., Spack needs to rewrite the RPATH in the ELF binary.

The Problem: You can safely shrink a string in a compiled binary, but if you try to replace a string with a longer one, you will overwrite adjacent memory and corrupt the executable.

The Solution: Spack uses a configuration called padded_length (often set to 128 characters or more). During the initial build, Spack intentionally pads the installation path with extra characters. This forces the compiler to generate massive, padded RPATH strings in the binary.

When you download the binary cache, Spack's relocation logic strips out the padding and inserts your local, shorter path. Because the original string was artificially inflated, Spack always has enough room to rewrite the path without breaking the binary.
00:18:29
@fzakaria:one.ems.hostfzakariatl;dr; Spack puts a 128 length padded entry in RPATH for the library (i.e. OpenGL). At realisation, the ELF binary is modified to point to the live running library.00:19:15
@dramforever:matrix.orgdramforevernot reaaaly an option for nix02:24:10
@dramforever:matrix.orgdramforeverand for regular rpath rewriting while building, we've been patchelf-ing everything which handles making a new PT_DYNAMIC02:25:21
@dramforever:matrix.orgdramforeverso that's also not a problem02:25:25
@dramforever:matrix.orgdramforever* so that's also "not" a problem02:25:35
@eveeifyeve:matrix.orgeveeifyeveSpeaking about patchelf, there has been discussion about using fixpath instead.07:25:44

Show newer messages


Back to Room ListRoom Version: 6