Skip to content
Snippets Groups Projects
  1. Jul 09, 2012
  2. Jun 27, 2012
  3. Jun 25, 2012
    • Eelco Dolstra's avatar
      When using chroots, use a private PID namespace · 1db38ae8
      Eelco Dolstra authored
      In a private PID namespace, processes have PIDs that are separate from
      the rest of the system.  The initial child gets PID 1.  Processes in
      the chroot cannot see processes outside of the chroot.  This improves
      isolation between builds.  However, processes on the outside can see
      processes in the chroot and send signals to them (if they have
      appropriate rights).
      
      Since the builder gets PID 1, it serves as the reaper for zombies in
      the chroot.  This might turn out to be a problem.  In that case we'll
      need to have a small PID 1 process that sits in a loop calling wait().
      1db38ae8
    • Eelco Dolstra's avatar
      Use a private UTS namespace to provide a deterministic host/domain name to builders · 54890864
      Eelco Dolstra authored
      In chroot builds, set the host name to "localhost" and the domain name
      to "(none)" (the latter being the kernel's default).  This improves
      determinism a bit further.
      
      P.S. I have to idea what UTS stands for.
      54890864
  4. Jun 23, 2012
    • Eelco Dolstra's avatar
      Update release notes · 8da6772e
      Eelco Dolstra authored
      8da6772e
    • Eelco Dolstra's avatar
      Improve error message · 723a68c8
      Eelco Dolstra authored
      723a68c8
    • Eelco Dolstra's avatar
      In chroot builds, use a private SysV IPC namespace · 7ffa523f
      Eelco Dolstra authored
      This improves isolation a bit further, and it's just one extra flag in
      the unshare() call.
      
      P.S. It would be very cool to use CLONE_NEWPID (to put the builder in
      a private PID namespace) as well, but that's slightly more risky since
      having a builder start as PID 1 may cause problems.
      7ffa523f
    • Eelco Dolstra's avatar
      In chroot builds, use a private network namespace · df716c98
      Eelco Dolstra authored
      On Linux it's possible to run a process in its own network namespace,
      meaning that it gets its own set of network interfaces, disjunct from
      the rest of the system.  We use this to completely remove network
      access to chroot builds, except that they get a private loopback
      interface.  This means that:
      
      - Builders cannot connect to the outside network or to other processes
        on the same machine, except processes within the same build.
      
      - Vice versa, other processes cannot connect to processes in a chroot
        build, and open ports/connections do not show up in "netstat".
      
      - If two concurrent builders try to listen on the same port (e.g. as
        part of a test), they no longer conflict with each other.
      
      This was inspired by the "PrivateNetwork" flag in systemd.
      df716c98
  5. Jun 19, 2012
  6. May 31, 2012
  7. May 30, 2012
  8. May 29, 2012
  9. May 24, 2012
  10. May 22, 2012
    • Eelco Dolstra's avatar
      Fix owner/group in tar invocation · 0301525e
      Eelco Dolstra authored
      0301525e
    • Eelco Dolstra's avatar
      Generate binary tarballs for installing Nix · 6814b1df
      Eelco Dolstra authored
      For several platforms we don't currently have "native" Nix packages
      (e.g. Mac OS X and FreeBSD).  This provides the next best thing: a
      tarball containing the closure of Nix, plus a simple script
      "nix-finish-install" that initialises the Nix database, registers the
      paths in the closure as valid, and runs "nix-env -i /path/to/nix" to
      initialise the user profile.
      
      The tarball must be unpacked in the root directory.  It creates
      /nix/store/... and /usr/bin/nix-finish-install.  Typical installation
      is as follows:
      
        $ cd /
        $ tar xvf /path/to/nix-1.1pre1234_abcdef-x86_64-linux.tar.bz2
        $ nix-finish-install
        (if necessary add ~/.nix-profile/etc/profile.d/nix.sh to the shell
        login scripts)
      
      After this, /usr/bin/nix-finish-install can be deleted, if desired.
      
      The downside to the binary tarball is that it's pretty big (~55 MiB
      for x86_64-linux).
      6814b1df
    • Eelco Dolstra's avatar
      Remove $FONTCONFIG_FILE hack from nix-profile.sh · 591aab7e
      Eelco Dolstra authored
      It's no longer needed because Nixpkgs' fontconfig uses
      /etc/fonts/fonts.conf as a default, just like other distributions.
      591aab7e
  11. May 21, 2012
  12. May 12, 2012
  13. May 11, 2012
  14. May 10, 2012
Loading