Skip to content

fix(deps): update rust crate nix to 0.31.1#1393

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/nix-0.x
Open

fix(deps): update rust crate nix to 0.31.1#1393
renovate[bot] wants to merge 1 commit intomainfrom
renovate/nix-0.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jan 24, 2026

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change
nix dependencies minor 0.30.10.31.1

Release Notes

nix-rust/nix (nix)

v0.31.1

Compare Source

Added
  • termios: Add definition for IUCLC to supported platforms
    (#​2702)
  • termios: Add definition for XCASE for supported platforms
    (#​2703)

v0.31.0

Compare Source

Added
  • Added the UDP GSO/GRO socket options and CMsgs on Android. This includes the
    following types:

    • UdpGsoSegment
    • UdpGroSegment
    • ControlMessage::UdpGsoSegments
    • ControlMessageOwned::UdpGroSegments

    (#​2666)

  • Define errno EWOULDBLOCK as an alias of EAGAIN to match the AIX libc
    definition. (#​2692)

  • Enable module ifaddrs on GNU Hurd
    (#​2697)

  • Add termios OutputFlags::OFILL for Linux, Android, Aix, Cygwin, Fuchsia,
    Haiku,
    GNU/Hurd, Nto, Redox, Illumos, Solaris and Apple OSes.
    (#​2701)

  • add sync() for cygwin (#​2708)

Changed
Fixed
  • Fixed nix::sys::ptrace::syscall_info, which was not setting the data
    argument properly, causing garbage values to be returned.
    (#​2653)
  • Cast the 'addr' argument of 'madvise()' to '*mut u8' on AIX to match the
    signature in the AIX libc.
    (#​2655)
  • Fixed the Dir module on NTO, Solaris, Hurd, and possibly other platforms.
    The
    d_name field was not copied correctly on those platforms. For some other
    platforms, it could be copied incorrectly for files with very long pathnames.
    (#​2674)
  • Fix the build on Illumos (#​2694)
Removed
  • Removed Eq and PartialEq implementations from SigHandler, because they
    never worked reliably. The suggested alternative is matches!. For
    example:
    let h: SigHandler = ...
    if matches!(h, SigHandler::SigIgn) {
        ...
    }
    ``` ([#​2642](https://redirect.github.com/nix-rust/nix/pull/2642))
    
  • Removed IFF_NOTRAILERS by NetBSD, as it has been removed upstream and from
    libc (#​2724)

[0.30.1] - 2025-05-04

Fixed

[0.30.0] - 2025-04-29

Added
  • Add socket option IPV6_PKTINFO for BSDs/Linux/Android, also
    IPV6_RECVPKTINFO for DragonFlyBSD
    (#​2113)
  • Add fcntl's F_PREALLOCATE constant for Apple targets.
    (#​2393)
  • Improve support for extracting the TTL / Hop Limit from incoming packets
    and support for DSCP (ToS / Traffic Class).
    (#​2425)
  • Add socket option IP_TOS (nix::sys::socket::sockopt::IpTos) IPV6_TCLASS
    (nix::sys::socket::sockopt::Ipv6TClass) on Android/FreeBSD
    (#​2464)
  • Add SeekData and SeekHole to Whence for hurd and apple targets
    (#​2473)
  • Add From trait implementation between SocketAddr and Sockaddr,
    Sockaddr6 (#​2474)
  • Added wrappers for posix_spawn API
    (#​2475)
  • Add the support for Emscripten.
    (#​2477)
  • Add fcntl constant F_RDADVISE for Apple target
    (#​2480)
  • Add fcntl constant F_RDAHEAD for Apple target
    (#​2482)
  • Add F_LOG2PHYS and F_LOG2PHYS_EXT for Apple target
    (#​2483)
  • MAP_SHARED_VALIDATE was added for all linux targets. & MAP_SYNC was added
    for linux with the exclusion of mips architecures, and uclibc
    (#​2499)
  • Add getregs()/getregset()/setregset() for Linux/musl/aarch64
    (#​2502)
  • Add FcntlArgs F_TRANSFEREXTENTS constant for Apple targets
    (#​2504)
  • Add MapFlags::MAP_STACK in sys::man for netbsd
    (#​2526)
  • Add support for libc::LOCAL_PEERTOKEN in getsockopt.
    (#​2529)
  • Add support for syslog, openlog, closelog on all unix.
    (#​2537)
  • Add the TCP_FUNCTION_BLK sockopt, on FreeBSD.
    (#​2539)
  • Implements Into<OwnedFd> for PtyMaster/Fanotify/Inotify/SignalFd/TimerFd
    (#​2548)
  • Add MremapFlags::MREMAP_DONTUNMAP to sys::mman::mremap for linux target.
    (#​2555)
  • Added sockopt_impl! to the public API. It's now possible for users to
    define
    their own sockopts without needing to make a PR to Nix.
    (#​2556)
  • Add the TCP_FUNCTION_ALIAS sockopt, on FreeBSD.
    (#​2558)
  • Add sys::mman::MmapAdvise MADV_PAGEOUT, MADV_COLD, MADV_WIPEONFORK,
    MADV_KEEPONFORK for Linux and Android targets
    (#​2559)
  • Add socket protocol Sctp, as well as MSG_NOTIFICATION for non-Android
    Linux targets. (#​2562)
  • Added from_owned_fd constructor to EventFd
    (#​2563)
  • Add sys::mman::MmapAdvise MADV_POPULATE_READ, MADV_POPULATE_WRITE for
    Linux and Android targets
    (#​2565)
  • Added from_owned_fd constructor to
    PtyMaster/Fanotify/Inotify/SignalFd/TimerFd
    (#​2566)
  • Added FcntlArg::F_READAHEAD for FreeBSD target
    (#​2569)
  • Added sockopt::LingerSec for Apple targets
    (#​2572)
  • Added sockopt::EsclBind for solarish targets
    (#​2573)
  • Exposed the std::os::fd::AsRawFd trait method for
    nix::sys::fanotify::Fanotify struct
    (#​2575)
  • Add support for syslog's setlogmask on all unix.
    (#​2579)
  • Added Fuchsia support for ioctl.
    (#​2580)
  • Add sys::socket::SockProtocol::EthIp,
    sys::socket::SockProtocol::EthIpv6,
    sys::socket::SockProtocol::EthLoop
    (#​2581)
  • Add OpenHarmony target into CI and Update documents.
    (#​2599)
  • Added the TcpMaxSeg setsockopt option for apple targets
    (#​2603)
  • Add FilAttach and FilDetach to socket::sockopt for Illumos
    (#​2611)
  • Add PeerPidfd (SO_PEERPIDFD) to socket::sockopt for Linux
    (#​2620)
  • Added socket::sockopt::AttachReusePortCbpf for Linux
    (#​2621)
  • Add ptrace::syscall_info for linux/glibc
    (#​2627)
Changed
  • Module sys/signal now adopts I/O safety
    (#​1936)
  • Change the type of the name argument of memfd_create() from &CStr to
    <P: NixPath>(name: &P) (#​2431)
  • Public interfaces in fcntl.rs and dir.rs now use I/O-safe types.
    (#​2434)
  • Module sys/stat now adopts I/O safety.
    (#​2439)
  • Module unistd now adopts I/O safety.
    (#​2440)
  • Module sys/fanotify now adopts I/O safety
    (#​2443)
  • Socket option IpTos has been renamed to Ipv4Tos, the old symbol is
    deprecated since 0.30.0 (#​2465)
  • Rename Flags EventFlag to EvFlags, and MemFdCreateFlag to MFdFlags
    (#​2476)
  • Made nix::sys::socket::UnknownCmsg public and more readable
    (#​2520)
  • recvmsg: take slice for cmsg_buffer instead of Vec
    (#​2524)
  • linkat: allow distinct types for path arguments
    (#​2582)
Fixed
  • Disable unsupported signals on sparc-linux
    (#​2454)
  • Fix cmsg_len() return type on OpenHarmony
    (#​2456)
  • The ns argument of sys::prctl::set_timerslack() should be of type
    c_ulong (#​2505)
  • Properly exclude NUL characters from OSStrings returned by getsockopt.
    (#​2557)
  • Fixes the build on OpenHarmony
    (#​2587)
Removed
  • Type SigevNotify is no longer PartialEq, Eq and Hash due to the use
    of BorrowedFd (#​1936)
  • EventFd::defuse() is removed because it does nothing, EventFd::arm() is
    also removed for symmetry reasons.
    (#​2452)
  • Removed the Copy trait from PollFd
    (#​2631)

[0.29.0] - 2024-05-24

Added
  • Add getregset()/setregset() for Linux/glibc/x86/x86_64/aarch64/riscv64 and
    getregs()/setregs() for Linux/glibc/aarch64/riscv64
    (#​2044)
  • Add socket option Ipv6Ttl for apple targets.
    (#​2287)
  • Add socket option UtunIfname.
    (#​2325)
  • make SigAction repr(transparent) & can be converted to the libc raw type
    (#​2326)
  • Add From trait implementation for conversions between sockaddr_in and
    SockaddrIn, sockaddr_in6 and SockaddrIn6
    (#​2328)
  • Add socket option ReusePortLb for FreeBSD.
    (#​2332)
  • Added support for openat2 on linux.
    (#​2339)
  • Add if_indextoname function.
    (#​2340)
  • Add mount and unmount API for apple targets.
    (#​2347)
  • Added _PC_MIN_HOLE_SIZE for pathconf and fpathconf.
    (#​2349)
  • Added impl AsFd for pty::PtyMaster
    (#​2355)
  • Add open flag O_SEARCH to AIX, Empscripten, FreeBSD, Fuchsia, solarish,
    WASI (#​2374)
  • Add prctl function prctl_set_vma_anon_name for Linux/Android.
    (#​2378)
  • Add sync(2) for apple_targets/solarish/haiku/aix/hurd, syncfs(2) for
    hurd and fdatasync(2) for aix/hurd
    (#​2379)
  • Add fdatasync support for Apple targets.
    (#​2380)
  • Add fcntl::OFlag::O_PATH for FreeBSD and Fuchsia
    (#​2382)
  • Added PathconfVar::MIN_HOLE_SIZE for apple_targets.
    (#​2388)
  • Add open flag O_SEARCH to apple_targets
    (#​2391)
  • O_DSYNC may now be used with aio_fsync and fcntl on FreeBSD.
    (#​2404)
  • Added Flock::relock for upgrading and downgrading locks.
    (#​2407)
Changed
  • Change the ForkptyResult type to the following repr so that the
    uninitialized
    master field won't be accessed in the child process:

    pub enum ForkptyResult {
        Parent {
            child: Pid,
            master: OwnedFd,
        },
        Child,
    }
    ``` ([#&#8203;2315](https://redirect.github.com/nix-rust/nix/pull/2315))
  • Updated cfg_aliases dependency from version 0.1 to 0.2
    (#​2322)

  • Change the signature of ptrace::write and ptrace::write_user to make them
    safe (#​2324)

  • Allow use of SignalFd through shared reference

    Like with many other file descriptors, concurrent use of signalfds is safe.
    Changing the signal mask of and reading signals from a signalfd can now be
    done
    with the SignalFd API even if other references to it exist.
    (#​2367)

  • Changed tee, splice and vmsplice RawFd arguments to AsFd.
    (#​2387)

  • Added I/O safety to the sys/aio module. Most functions that previously
    accepted a AsRawFd argument now accept an AsFd instead.
    (#​2401)

  • RecvMsg::cmsgs() now returns a Result, and checks that cmsgs were not
    truncated. (#​2413)

Fixed
  • No longer panics when the fanotify queue overflows.
    (#​2399)
  • Fixed ControlMessageOwned::UdpGroSegments wrapped type from u16 to i32 to
    reflect the used kernel's one.
    (#​2406)

[0.28.0] - 2024-02-24

Added
  • Added mkdtemp wrapper (#​1297)

  • Add associated constants UTIME_OMIT UTIME_NOW for TimeSpec
    (#​1879)

  • Added EventFd type. (#​1945)

    • Added impl From<Signal> for SigSet.
    • Added impl std::ops::BitOr for SigSet.
    • Added impl std::ops::BitOr for Signal.
    • Added impl std::ops::BitOr<Signal> for SigSet

    (#​1959)

  • Added TlsGetRecordType control message type and corresponding enum for
    linux (#​2065)

  • Added Ipv6HopLimit to ::nix::sys::socket::ControlMessage for Linux,
    MacOS, FreeBSD, DragonflyBSD, Android, iOS and Haiku.
    (#​2074)

  • Added Icmp and IcmpV6 to SockProtocol
    (#​2103)

  • Added rfork support for FreeBSD in unistd
    (#​2121)

  • Added MapFlags::map_hugetlb_with_size_log2 method for Linux targets
    (#​2125)

  • Added mmap_anonymous function
    (#​2127)

  • Added mips32r6 and mips64r6 support for signal, ioctl and ptrace
    (#​2138)

  • Added F_GETPATH FcntlFlags entry on Apple/NetBSD/DragonflyBSD for
    ::nix::fcntl. (#​2142)

  • Added F_KINFO FcntlFlags entry on FreeBSD for ::nix::fcntl.
    (#​2152)

  • Added F_GETPATH_NOFIRMLINK and F_BARRIERFSYNC FcntlFlags entry
    on Apple for ::nix::fcntl.
    (#​2155)

  • Added newtype Flock to automatically unlock a held flock upon drop.
    Added Flockable trait to represent valid types for Flock.
    (#​2170)

  • Added SetSockOpt impls to enable Linux Kernel TLS on a TCP socket and to
    import TLS parameters. (#​2175)

    • Added the ::nix::sys::socket::SocketTimestamp enum for configuring the
      TsClock (a.k.a SO_TS_CLOCK) sockopt
    • Added FreeBSD's ScmRealtime and ScmMonotonic as new options in
      ::nix::sys::socket::ControlMessageOwned

    (#​2187)

  • Added new fanotify API: wrappers for fanotify_init and fanotify_mark
    (#​2194)

  • Added SpecialCharacterindices support for haiku.
    (#​2195)

  • Added sys::sendfile support for solaris/illumos.
    (#​2198)

  • impl Display for InterfaceFlags
    (#​2206)

  • Added sendfilev in sys::sendfile for solarish
    (#​2207)

  • Added fctrl::SealFlag::F_SEAL_FUTURE_WRITE
    (#​2213)

  • Added Ipv6MulticastHops as socket option to set and read.
    (#​2234)

  • Enable ControlMessageOwned::Ipv4RecvIf and
    ControlMessageOwned::Ipv4RecvDstAddr for DragonFlyBSD
    (#​2240)

  • ClockId::set_time() and time::clock_settime() are now enabled on macOS
    (#​2241)

  • Added IpBindAddressNoPort sockopt to support IP_BIND_ADDRESS_NO_PORT
    available on linux. (#​2244)

  • Enable MapFlags::map_hugetlb_with_size_log2 method for Android/Fuchsia
    (#​2245)

  • Added TcpFastOpenConnect sockopt to support TCP_FASTOPEN_CONNECT
    available on linux. (#​2247)

  • Add reboot(2) for OpenBSD/NetBSD
    (#​2251)

  • Added new MemFdCreateFlag constants to sys::memfd on Linux and Android
    related to hugetlbfs support.
    (#​2252)

  • Expose the inner fd of Kqueue through:

    • impl AsFd for Kqueue
    • impl From<Kqueue> for OwnedFd

    (#​2258)

  • Added sys::eventfd support on FreeBSD
    (#​2259)

  • Added MmapFlags::MAP_FIXED constant in sys::mman for netbsd and openbsd
    (#​2260)

  • Added the SO_LISTENQLIMIT sockopt.
    (#​2263)

  • Enable the AT_EMPTY_PATH flag for the fchownat() function
    (#​2267)

  • Add AtFlags::AT_EMPTY_PATH for FreeBSD and Hurd
    (#​2270)

  • Enable `OFlag::O_DIRECTORY for Solarish
    (#​2275)

  • Added the Backlog wrapper type for the listen call.
    (#​2276)

  • Add clock_nanosleep() (#​2277)

  • Enabled O_DIRECT in fcntl::OFlags for solarish
    (#​2278)

  • Added a new API sigsuspend.
    (#​2279)

    • Added errno::Errno::set function
    • Added errno::Errno::set_raw function
    • Added errno::Errno::last_raw function
    • Added errno::Errno::from_raw function

    (#​2283)

  • Enable the AT_EMPTY_PATH flag for the linkat() function
    (#​2284)

  • Enable unistd::{sync, syncfs} for Android
    (#​2296)

Changed
  • poll now takes PollTimeout replacing libc::c_int.
    (#​1876)

  • Deprecated sys::eventfd::eventfd.
    (#​1945)

  • mmap, mmap_anonymous, munmap, mremap, madvise, msync, mprotect,
    munlock and mlock updated to use NonNull.
    (#​2000)

  • mmap function now accepts F instead of Option<F>
    (#​2127)

  • PollFd::new now takes a BorrowedFd argument, with relaxed lifetime
    requirements relative to the previous version.
    (#​2134)

  • FdSet::{insert, remove, contains} now take BorrowedFd arguments, and have
    relaxed lifetime requirements relative to 0.27.1.
    (#​2136)

  • The following APIs now take an implementation of AsFd rather than a
    RawFd:

    • unistd::tcgetpgrp
    • unistd::tcsetpgrp
    • unistd::fpathconf
    • unistd::ttyname
    • unistd::getpeereid (#​2137)
  • Changed openat() and Dir::openat(), now take optional dirfds
    (#​2139)

  • The MSRV is now 1.69 (#​2144)

  • Changed function SockaddrIn::ip() to return net::Ipv4Addr and refactored
    SocketAddrV6::ip() to be const
    (#​2151)

  • The following APIs now take optional dirfds:

    • readlinkat()
    • fstatat()
    • mknodat()
    • mkdirat()
    • execveat()

    (#​2157)

  • Epoll::wait now takes EpollTimeout replacing isize.
    (#​2202)

    • Deprecated errno::errno() function (use Errno::last_raw())
    • Deprecated errno::from_i32() function (use Errno::from_raw())
    • Deprecated errno::Errno::from_i32() function (use Errno::from_raw())

    (#​2283)

Fixed
  • Fix SigSet incorrect implementation of Eq, PartialEq and Hash
    (#​1946)
  • Fixed ::sys::socket::sockopt::IpMulticastTtl by fixing the value of optlen
    passed to libc::setsockopt and added tests.
    (#​2072)
  • Fixed the function signature of recvmmsg, potentially causing UB
    (#​2119)
  • Fix SignalFd::set_mask. In 0.27.0 it would actually close the file
    descriptor. (#​2141)
  • Fixed UnixAddr::new for haiku, it did not record the sun_len value as
    needed.
    Fixed sys::socket::addr::from_raw_parts and
    sys::socket::Sockaddrlike::len build for solaris.
    (#​2242)
  • Fixed solaris build globally.
    (#​2248)
  • Changed the dup3 wrapper to perform a real call to dup3 instead of
    emulating it via dup2 and fcntl to get rid of race condition
    (#​2268)
  • Fixed ::unistd::Group::members using read_unaligned to avoid crash on
    misaligned pointers (#​2311)
Removed
  • The FchownatFlags type has been deprecated, please use AtFlags instead.
    (#​2267)
  • Removed the dup3 wrapper on macOS, which was emulated via dup2 and
    fcntl and could cause a race condition. The dup3 system call is not
    supported on macOS. (#​2268)
  • The LinkatFlags type has been deprecated, please use AtFlags instead.
    (#​2284)

[0.27.1] - 2023-08-28

Fixed
  • Fixed generating the documentation on docs.rs.
    (#​2111)

[0.27.0] - 2023-08-28

Added
  • Added AT_EACCESS to AtFlags on all platforms but android
    (#​1995)
  • Add PF_ROUTE to SockType on macOS, iOS, all of the BSDs, Fuchsia, Haiku, Illumos.
    (#​1867)
  • Added nix::ucontext module on aarch64-unknown-linux-gnu.
    (#1662)
  • Added CanRaw to SockProtocol and CanBcm as a separate SocProtocol constant.
    (#​1912)
  • Added Generic and NFLOG to SockProtocol.
    (#​2092)
  • Added mq_timedreceive to ::nix::mqueue.
    ([#​1966])(#​1966)
  • Added LocalPeerPid to nix::sys::socket::sockopt for macOS. (#​1967)
  • Added TFD_TIMER_CANCEL_ON_SET to ::nix::sys::time::TimerSetTimeFlags on Linux and Android.
    (#​2040)
  • Added SOF_TIMESTAMPING_OPT_ID and SOF_TIMESTAMPING_OPT_TSONLY to nix::sys::socket::TimestampingFlag.
    (#​2048)
  • Enabled socket timestamping options on Android. (#​2077)
  • Added vsock support for macOS (#​2056)
  • Added SO_SETFIB and SO_USER_COOKIE to nix::sys::socket::sockopt for FreeBSD.
    (#​2085)
  • Added SO_RTABLE for OpenBSD and SO_ACCEPTFILTER for FreeBSD/NetBSD to nix::sys::socket::sockopt.
    (#​2085)
  • Added MSG_WAITFORONE to MsgFlags on Android, Fuchsia, Linux, NetBSD,
    FreeBSD, OpenBSD, and Solaris.
    (#​2014)
  • Added SO_TS_CLOCK for FreeBSD to nix::sys::socket::sockopt.
    (#​2093)
  • Added support for prctl in Linux.
    (#1550)
  • nix::socket and nix::select are now available on Redox.
    (#​2012)
  • Implemented AsFd, AsRawFd, FromRawFd, and IntoRawFd for mqueue::MqdT.
    (#​2097)
  • Add the ability to set kevent_flags on SigEvent.
    (#​1731)
Changed
  • All Cargo features have been removed from the default set. Users will need to
    specify which features they depend on in their Cargo.toml.
    (#​2091)

  • Implemented I/O safety for many, but not all, of Nix's APIs. Many public
    functions argument and return types have changed:

    Original Type New Type
    AsRawFd AsFd
    RawFd BorrowedFd or OwnedFd

    (#1906)

  • Use I/O safety with copy_file_range, and expose it on FreeBSD.
    (#1906)

  • The MSRV is now 1.65
    (#​1862)
    (#​2104)

  • The epoll interface now uses a type.
    (#​1882)

  • With I/O-safe type applied in pty::OpenptyResult and pty::ForkptyResult,
    users no longer need to manually close the file descriptors in these types.
    (#​1921)

  • Refactored name parameter of mq_open and mq_unlink to be generic over
    NixPath.
    (#​2102).

  • Made clone unsafe, like fork.
    (#​1993)

Removed
  • sys::event::{kevent, kevent_ts} are deprecated in favor of
    sys::kevent::Kqueue::kevent, and sys::event::kqueue is deprecated in
    favor of sys::kevent::Kqueue::new.
    (#​1943)
  • Removed deprecated IoVec API.
    (#​1855)
  • Removed deprecated net APIs.
    (#​1861)
  • nix::sys::signalfd::signalfd is deprecated. Use
    nix::sys::signalfd::SignalFd instead.
    (#​1938)
  • Removed SigEvent support on Fuchsia, where it was unsound.
    (#​2079)
  • Removed flock from ::nix::fcntl on Solaris.
    (#​2082)

[0.26.3] - 2023-08-27

Fixed
  • Fix: send ETH_P_ALL in htons format
    (#​1925)
  • Fix: recvmsg now sets the length of the received sockaddr_un field
    correctly on Linux platforms. (#​2041)
  • Fix potentially invalid conversions in
    SockaddrIn::from<std::net::SocketAddrV4>,
    SockaddrIn6::from<std::net::SockaddrV6>, IpMembershipRequest::new, and
    Ipv6MembershipRequest::new with future Rust versions.
    (#​2061)
  • Fixed an incorrect lifetime returned from recvmsg.
    (#​2095)

[0.26.2] - 2023-01-18

Fixed
  • Fix SockaddrIn6 bug that was swapping flowinfo and scope_id byte
    ordering.
    (#​1964)

[0.26.1] - 2022-11-29

Fixed
  • Fix UB with sys::socket::sockopt::SockType using SOCK_PACKET.
    (#​1821)

[0.26.0] - 2022-11-29

Added
  • Added SockaddrStorage::{as_unix_addr, as_unix_addr_mut}
    (#​1871)
  • Added MntFlags and unmount on all of the BSDs.
  • Added any() and all() to poll::PollFd.
    (#​1877)
  • Add MntFlags and unmount on all of the BSDs.
    (#​1849)
  • Added a Statfs::flags method.
    (#​1849)
  • Added NSFS_MAGIC FsType on Linux and Android.
    (#​1829)
  • Added sched_getcpu on platforms that support it.
    (#​1825)
  • Added sched_getaffinity and sched_setaffinity on FreeBSD.
    (#​1804)
  • Added line_discipline field to Termios on Linux, Android and Haiku
    (#​1805)
  • Expose the memfd module on FreeBSD (memfd was added in FreeBSD 13)
    (#​1808)
  • Added domainname field of UtsName on Android and Linux
    (#​1817)
  • Re-export RLIM_INFINITY from libc
    (#​1831)
  • Added syncfs(2) on Linux
    (#​1833)
  • Added faccessat(2) on illumos
    (#​1841)
  • Added eaccess() on FreeBSD, DragonFly and Linux (glibc and musl).
    (#​1842)
  • Added IP_TOS SO_PRIORITY and IPV6_TCLASS sockopts for Linux
    (#​1853)
  • Added new_unnamed and is_unnamed for UnixAddr on Linux and Android.
    (#​1857)
  • Added SockProtocol::Raw for raw sockets
    (#​1848)
  • added IP_MTU (IpMtu) IPPROTO_IP sockopt on Linux and Android.
    (#​1865)
Changed
  • The MSRV is now 1.56.1
    (#​1792)
  • The addr argument of sys::mman::mmap is now of type Option<NonZeroUsize>.
    (#​1870)
  • The length argument of sys::mman::mmap is now of type NonZeroUsize.
    (#​1873)
Fixed
  • Fixed using SockaddrStorage to store a Unix-domain socket address on Linux.
    (#​1871)
  • Fix microsecond calculation for TimeSpec.
    (#​1801)
  • Fix User::from_name and Group::from_name panicking
    when given a name containing a nul.
    (#​1815)
  • Fix User::from_uid and User::from_name crash on Android platform.
    (#​1824)
  • Workaround XNU bug causing netmasks returned by getifaddrs to misbehave.
    (#​1788)
Removed
  • Removed deprecated error constants and conversions.
    (#​1860)

[0.25.0] - 2022-08-13

Added
  • Added faccessat
    (#​1780)
  • Added memfd on Android.
    (#1773)
  • Added ETH_P_ALL to SockProtocol enum
    (#1768)
  • Added four non-standard Linux SysconfVar variants
    (#1761)
  • Added const constructors for TimeSpec and TimeVal
    (#1760)
  • Added chflags.
    (#1758)
  • Added aio_writev and aio_readv.
    (#1713)
  • impl From<uid_t> for Uid and From<gid_t> for Gid
    (#1727)
  • impl From<SockaddrIn> for std::net::SocketAddrV4 and
    impl From<SockaddrIn6> for std::net::SocketAddrV6.
    (#1711)
  • Added support for the x86_64-unknown-haiku target.
    (#1703)
  • Added ptrace::read_user and ptrace::write_user for Linux.
    (#1697)
  • Added getrusage and helper types UsageWho and Usage
    (#1747)
  • Added the DontRoute SockOpt
    (#1752)
  • Added signal::SigSet::from_sigset_t_unchecked().
    (#1741)
  • Added the Ipv4OrigDstAddr sockopt and control message.
    (#1772)
  • Added the Ipv6OrigDstAddr sockopt and control message.
    (#1772)
  • Added the Ipv4SendSrcAddr control message.
    (#1776)
Changed
  • Reimplemented sendmmsg/recvmmsg to avoid allocations and with better API
    (#1744)

  • Rewrote the aio module. The new module:

    • Does more type checking at compile time rather than runtime.
    • Gives the caller control over whether and when to Box an aio operation.
    • Changes the type of the priority arguments to i32.
    • Changes the return type of aio_return to usize.
      (#1713)
  • nix::poll::ppoll: sigmask parameter is now optional.
    (#1739)

  • Changed gethostname to return an owned OsString.
    (#1745)

  • signal:SigSet is now marked as repr(transparent).
    (#1741)

Removed
  • Removed support for resubmitting partially complete lio_listio operations.
    It was too complicated, and didn't fit Nix's theme of zero-cost abstractions.
    Instead, it can be reimplemented downstream.
    (#1713)

[0.24.2] - 2022-07-17

Fixed
  • Fixed buffer overflow in nix::sys::socket::recvfrom.
    (#1763)
  • Enabled SockaddrStorage::{as_link_addr, as_link_addr_mut} for Linux-like
    operating systems.
    (#1729)
  • Fixed SockaddrLike::from_raw implementations for VsockAddr and
    SysControlAddr.
    (#1736)

[0.24.1] - 2022-04-22

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

[0.24.0] - 2022-04-21

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::ucontext 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)

[0.23.1] - 2021-12-16

Changed
  • Relaxed the bitflags requirement from 1.3.1 to 1.1. This partially reverts
    #​1492. From now on, the MSRV is not guaranteed to work with all versions of
    all dependencies, just with some version of all dependencies.
    (#1607)
Fixed
  • Fixed soundness issues in FdSet::insert, FdSet::remove, and
    FdSet::contains involving file descriptors outside of the range
    0..FD_SETSIZE.
    (#1575)

[0.23.0] - 2021-09-28

Added
  • Added the LocalPeerCred sockopt.
    (#1482)
  • Added TimeSpec::from_duration and TimeSpec::from_timespec
    (#1465)
  • Added IPV6_V6ONLY sockopt.
    (#1470)
  • Added impl From<User> for libc::passwd trait implementation to convert a User
    into a libc::passwd. Consumes the User struct to give ownership over
    the member pointers.
    (#1471)
  • Added pthread_kill.
    (#1472)
  • Added mknodat.
    (#1473)
  • Added setrlimit and getrlimit.
    (#1302)
  • Added ptrace::interrupt method for platforms that support PTRACE_INTERRUPT
    (#1422)
  • Added IP6T_SO_ORIGINAL_DST sockopt.
    (#1490)
  • Added the PTRACE_EVENT_STOP variant to the sys::ptrace::Event enum
    (#1335)
  • Exposed SockAddr::from_raw_sockaddr
    (#1447)
  • Added TcpRepair
    (#1503)
  • Enabled pwritev and preadv for more operating systems.
    (#1511)
  • Added support for TCP_MAXSEG TCP Maximum Segment Size socket options
    (#1292)
  • Added Ipv4RecvErr and Ipv6RecvErr sockopts and associated control messages.
    (#1514)
  • Added AsRawFd implementation on PollFd.
    (#1516)
  • Added Ipv4Ttl and Ipv6Ttl sockopts.
    (#1515)
  • Added MAP_EXCL, MAP_ALIGNED_SUPER, and MAP_CONCEAL mmap flags, and
    exposed MAP_ANONYMOUS for all operating systems.
    (#1522)
    (#1525)
    (#1531)
    (#1534)
  • Added read/write accessors for 'events' on PollFd.
    (#1517)
Changed
  • FdSet::{contains, highest, fds} no longer require a mutable reference.
    (#1464)
  • User::gecos and corresponding libc::passwd::pw_gecos are supported on
    64-bit Android, change conditional compilation to include the field in
    64-bit Android builds
    (#1471)
  • eventfds are supported on Android, change conditional compilation to
    include sys::eventfd::eventfd and sys::eventfd::EfdFlagsfor Android
    builds.
    (#1481)
  • Most enums that come from C, for example Errno, are now marked as
    #[non_exhaustive].
    (#1474)
  • Many more functions, mostly contructors, are now const.
    (#1476)
    (#1492)
  • sys::event::KEvent::filter now returns a Result instead of being
    infalliable. The only cases where it will now return an error are cases
    where it previously would've had undefined behavior.
    (#1484)
  • Minimum supported Rust version is now 1.46.0.
    (#​1492)
  • Rework UnixAddr to encapsulate internals better in order to fix soundness
    issues. No longer allows creating a UnixAddr from a raw sockaddr_un.
    (#​1496)
  • Raised bitflags to 1.3.0 and the MSRV to 1.46.0.
    (#​1492)
Fixed
  • posix_fadvise now returns errors in the conventional way, rather than as a
    non-zero value in Ok().
    (#1538)
  • Added more errno definitions for better backwards compatibility with
    Nix 0.21.0.
    (#1467)
  • Fixed potential undefined behavior in Signal::try_from on some platforms.
    (#1484)
  • Fixed buffer overflow in unistd::getgrouplist.
    (#1545)
Removed
  • Removed a couple of termios constants on redox that were never actually
    supported.
    (#1483)
  • Removed nix::sys::signal::NSIG. It was of dubious utility, and not correct
    for all platforms.
    (#1484)
  • Removed support for 32-bit Apple targets, since they've been dropped by both
    Rustc and Xcode.
    (#1492)
  • Deprecated SockAddr/InetAddr::to_str in favor of ToString::to_string
    (#1495)
  • Removed SigevNotify on OpenBSD and Redox.
    (#1511)

[0.22.3] - 22 January 2022

Changed
  • Relaxed the bitflags requirement from 1.3.1 to 1.1. This partially reverts
    #​1492. From now on, the MSRV is not guaranteed to work with all versions of
    all dependencies, just with some version of all dependencies.
    (#1607)

[0.22.2] - 28 September 2021

Fixed
  • Fixed buffer overflow in unistd::getgrouplist.
    (#1545)
  • Added more errno definitions for better backwards compatibility with
    Nix 0.21.0.
    (#1467)

[0.22.1] - 13 August 2021

Fixed
  • Locked bitflags to < 1.3.0 to fix the build with rust < 1.46.0.
Removed
  • Removed a couple of termios constants on redox that were never actually
    supported.
    (#1483)

[0.22.0] - 9 July 2021

Added
  • Added if_nameindex (#1445)
  • Added nmount for FreeBSD.
    (#1453)
  • Added IpFreebind socket option (sockopt) on Linux, Fuchsia and Android.
    (#1456)
  • Added TcpUserTimeout socket option (sockopt) on Linux and Fuchsia.
    (#1457)
  • Added renameat2 for Linux
    (#1458)
  • Added RxqOvfl support on Linux, Fuchsia and Android.
    (#1455)
Changed
  • ptsname_r now returns a lossily-converted string in the event of bad UTF,
    just like ptsname.
    (#​1446)
  • Nix's error type is now a simple wrapper around the platform's Errno. This
    means it is now Into<std::io::Error>. It's also Clone, Copy, Eq, and
    has a small fixed size. It also requires less typing. For example, the old
    enum variant nix::Error::Sys(nix::errno::Errno::EINVAL) is now simply
    nix::Error::EINVAL.
    (#​1446)

[0.21.2] - 29 September 2021

Fixed
  • Fixed buffer overflow in unistd::getgrouplist.
    (#1545)

[0.21.1] - 13 August 2021

Fixed
  • Locked bitflags to < 1.3.0 to fix the build with rust < 1.46.0.
Removed
  • Removed a couple of termios constants on redox that were never actually
    supported.
    (#1483)

[0.21.0] - 31 May 2021

Added
  • Added getresuid and getresgid
    (#1430)
  • Added TIMESTAMPNS support for linux
    (#1402)
  • Added sendfile64 (#1439)
  • Added MS_LAZYTIME to MsFlags
    (#1437)
Changed
  • Made forkpty unsafe, like fork
    (#1390)
  • Made Uid, Gid and Pid methods from_raw and as_raw a const fn
    (#1429)
  • Made Uid::is_root a const fn
    (#1429)
  • AioCb is now always pinned. Once a libc::aiocb gets sent to the kernel,
    its address in memory must not change. Nix now enforces that by using
    std::pin. Most users won't need to change anything, except when using
    aio_suspend. See that method's documentation for the new usage.
    (#1440)
  • LioCb is now constructed using a distinct LioCbBuilder struct. T

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Never, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate renovate bot added the dependencies Pull requests that update a dependency file label Jan 24, 2026
@renovate
Copy link
Contributor Author

renovate bot commented Jan 24, 2026

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package nix@0.30.1 --precise 0.31.1
    Updating crates.io index
error: failed to select a version for the requirement `nix = "^0.30"`
candidate versions found which didn't match: 0.31.1
location searched: crates.io index
required by package `mozim v0.3.1`
    ... which satisfies dependency `mozim = "^0.3.1"` of package `netavark v2.0.0-dev (/tmp/renovate/repos/github/containers/netavark)`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants