pijul nest
guest [sign in]

Adding /tmp to containers

pmeunier
Jul 2, 2025, 9:22 PM
A7YP2YT6WQ4WDFQTQRHPFC7EFJBCWYHV6HERQD6CUTWUBC4FLBTAC

Dependencies

  • [2] YJYXDY6A Capturing stdout/stderr for the derivations that ask
  • [3] NWEGAWPP Mounting /proc, /sys and /dev in the chroot
  • [4] BQ4E3XLA Forwarding stdout/stderr
  • [5] ODUDDQRY Adding the OCaml interface
  • [*] VWVW5VOI Copying the sources in /src instead of /

Change contents

  • replacement in src/container.rs at line 234
    [4.50140][4.50140:50195]()
    debug!("run in container, path = {:#?}", r.paths);
    [4.50140]
    [4.50195]
    debug!(
    "run in container, {:?} {:?} path = {:#?}",
    r.name, r.target, r.paths
    );
  • replacement in src/container.rs at line 245
    [4.50441][4.50441:50442]()
    [4.50441]
    [4.50442]
    debug!("name = {:?}", name);
  • edit in src/container.rs at line 344
    [4.53121]
    [2.306]
    info!("removing {:?}", tmp_dir);
    std::fs::remove_dir_all(&tmp_dir).unwrap_or(());
  • edit in src/container.rs at line 495
    [7.79]
    [4.57268]
    let tmp_tmp = tmp_dir.join("tmp");
    std::fs::create_dir_all(&tmp_tmp)?;
  • edit in src/container.rs at line 501
    [4.57373]
    [3.0]
    std::mem::forget(mount::Mount::ramfs(&tmp_tmp).unwrap());
    let mut perm = std::fs::metadata(&tmp_tmp).unwrap().permissions();
    perm.set_mode(0o777);
    std::fs::set_permissions(&tmp_tmp, perm).unwrap();
    std::os::unix::fs::chown(tmp_dir, Some(uid), Some(gid)).unwrap();
  • replacement in src/container.rs at line 616
    [4.61176][4.61176:61247]()
    panic!("execve failed: {:?}", std::io::Error::last_os_error())
    [4.61176]
    [4.61247]
    panic!(
    "execve failed: {:?} {:?}",
    c,
    std::io::Error::last_os_error()
    )
  • edit in src/container.rs at line 676
    [4.62967]
    [4.62967]
    let path = path.strip_prefix(p).unwrap();