nix v0.24.1 Release Notes

Release Date: 2022-04-22 // 7 months ago
  • โž• Added

    ๐Ÿ”„ Changed

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed UnixAddr::size on Linux-based OSes. (#1702)

    โœ‚ Removed


Previous changes from v0.24.0

  • โž• Added

    • โž• Added fine-grained features flags. Most Nix functionality can now be conditionally enabled. By default, all features are enabled. (#1611)
    • โž• Added statfs FS type magic constants for target_os = "android" and synced constants with libc v0.2.121. (#1690)
    • โž• Added fexecve on DragonFly. (#1577)
    • ๐Ÿ”€ sys::uio::IoVec is now Send and Sync (#1582)
    • โž• Added EPOLLEXCLUSIVE on Android. (#1567)
    • โž• Added fdatasync for FreeBSD, Fuchsia, NetBSD, and OpenBSD. (#1581)
    • Added sched_setaffinity and sched_getaffinity on DragonFly. (#1537)
    • โž• Added posix_fallocate on DragonFly. (#1621)
    • โž• Added SO_TIMESTAMPING support (#1547)
    • โž• Added getter methods to MqAttr struct (#1619)
    • โž• Added the TxTime sockopt and control message. (#1564)
    • โž• Added POSIX per-process timer support (#1622)
    • โž• Added sendfile on DragonFly. (#1615)
    • Added UMOUNT_NOFOLLOW, FUSE_SUPER_MAGIC on Linux. (#1634)
    • โž• Added getresuid, setresuid, getresgid, and setresgid on DragonFly, FreeBSD, and OpenBSD. (#1628)
    • ๐Ÿ›  Added MAP_FIXED_NOREPLACE on Linux. (#1636)
    • โž• Added fspacectl on FreeBSD (#1640)
    • โž• Added accept4 on DragonFly, Emscripten, Fuchsia, Illumos, and NetBSD. (#1654)
    • โž• Added AsRawFd implementation on OwningIter. (#1563)
    • Added process_vm_readv and process_vm_writev on Android. (#1557)
    • โž• Added nix::uncontext module on s390x. (#1662)
    • Implemented Extend, FromIterator, and IntoIterator for SigSet and added SigSet::iter and SigSetIter. (#1553)
    • โž• Added ENOTRECOVERABLE and EOWNERDEAD error codes on DragonFly. (#1665)
    • Implemented Read and Write for &PtyMaster (#1664)
    • โž• Added MSG_NOSIGNAL for Android, Dragonfly, FreeBSD, Fuchsia, Haiku, Illumos, Linux, NetBSD, OpenBSD and Solaris. (#1670)
    • โž• Added waitid. (#1584)
    • โž• Added Ipv6DontFrag for android, iOS, linux and macOS.
    • โž• Added IpDontFrag for iOS, macOS. (#1692)

    ๐Ÿ”„ Changed

    • mqueue functions now operate on a distinct type, nix::mqueue::MqdT. Accessors take this type by reference, not by value. (#1639)
    • โœ‚ Removed SigSet::extend in favor of <SigSet as Extend<Signal>>::extend. Because of this change, you now need use std::iter::Extend to call extend on a SigSet. (#1553)
    • โœ‚ Removed the the PATH_MAX restriction from APIs accepting paths. Paths will now be allocated on the heap if they are too long. In addition, large instruction count improvements (~30x) were made to path handling. (#1656)
    • ๐Ÿ”„ Changed getrlimit and setrlimit to use rlim_t directly instead of Option<rlim_t>. (#1668)
    • ๐Ÿ—„ Deprecated InetAddr and SockAddr in favor of SockaddrIn, SockaddrIn6, and SockaddrStorage. (#1684)
    • ๐Ÿ—„ Deprecated IpAddr, Ipv4Addr, and Ipv6Addr in favor of their equivalents from the standard library. (#1685)
    • uname now returns a Result<UtsName> instead of just a UtsName and ignoring failures from libc. And getters on the UtsName struct now return an &OsStr instead of &str. (#1672)
    • Replaced IoVec with IoSlice and IoSliceMut, and replaced IoVec::from_slice with IoSlice::new. (#1643)

    ๐Ÿ›  Fixed

    • InetAddr::from_std now sets the sin_len/sin6_len fields on the BSDs. (#1642)
    • ๐Ÿ›  Fixed a panic in LinkAddr::addr. That function now returns an Option. (#1675) (#1677)

    โœ‚ Removed

    • โœ‚ Removed public access to the inner fields of NetlinkAddr, AlgAddr, SysControlAddr, LinkAddr, and VsockAddr. (#1614)
    • โœ‚ Removed EventFlag::EV_SYSFLAG. (#1635)