nix-rust/nix (nix)
### [`v0.29.0`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0290---2024-05-24)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.28.0...v0.29.0)
##### Added
- Add `getregset()/setregset()` for Linux/glibc/x86/x86\_64/aarch64/riscv64 and
`getregs()/setregs()` for Linux/glibc/aarch64/riscv64
([#2044](https://togithub.com/nix-rust/nix/pull/2044))
- Add socket option Ipv6Ttl for apple targets.
([#2287](https://togithub.com/nix-rust/nix/pull/2287))
- Add socket option UtunIfname.
([#2325](https://togithub.com/nix-rust/nix/pull/2325))
- make SigAction repr(transparent) & can be converted to the libc raw type
([#2326](https://togithub.com/nix-rust/nix/pull/2326))
- Add `From` trait implementation for conversions between `sockaddr_in` and
`SockaddrIn`, `sockaddr_in6` and `SockaddrIn6`
([#2328](https://togithub.com/nix-rust/nix/pull/2328))
- Add socket option ReusePortLb for FreeBSD.
([#2332](https://togithub.com/nix-rust/nix/pull/2332))
- Added support for openat2 on linux.
([#2339](https://togithub.com/nix-rust/nix/pull/2339))
- Add if_indextoname function.
([#2340](https://togithub.com/nix-rust/nix/pull/2340))
- Add `mount` and `unmount` API for apple targets.
([#2347](https://togithub.com/nix-rust/nix/pull/2347))
- Added `_PC_MIN_HOLE_SIZE` for `pathconf` and `fpathconf`.
([#2349](https://togithub.com/nix-rust/nix/pull/2349))
- Added `impl AsFd for pty::PtyMaster`
([#2355](https://togithub.com/nix-rust/nix/pull/2355))
- Add `open` flag `O_SEARCH` to AIX, Empscripten, FreeBSD, Fuchsia, solarish,
WASI ([#2374](https://togithub.com/nix-rust/nix/pull/2374))
- Add prctl function `prctl_set_vma_anon_name` for Linux/Android.
([#2378](https://togithub.com/nix-rust/nix/pull/2378))
- Add `sync(2)` for `apple_targets/solarish/haiku/aix/hurd`, `syncfs(2)` for
`hurd` and `fdatasync(2)` for `aix/hurd`
([#2379](https://togithub.com/nix-rust/nix/pull/2379))
- Add fdatasync support for Apple targets.
([#2380](https://togithub.com/nix-rust/nix/pull/2380))
- Add `fcntl::OFlag::O_PATH` for FreeBSD and Fuchsia
([#2382](https://togithub.com/nix-rust/nix/pull/2382))
- Added `PathconfVar::MIN_HOLE_SIZE` for apple_targets.
([#2388](https://togithub.com/nix-rust/nix/pull/2388))
- Add `open` flag `O_SEARCH` to apple_targets
([#2391](https://togithub.com/nix-rust/nix/pull/2391))
- `O_DSYNC` may now be used with `aio_fsync` and `fcntl` on FreeBSD.
([#2404](https://togithub.com/nix-rust/nix/pull/2404))
- Added `Flock::relock` for upgrading and downgrading locks.
([#2407](https://togithub.com/nix-rust/nix/pull/2407))
##### Changed
- Change the `ForkptyResult` type to the following repr so that the
uninitialized
`master` field won't be accessed in the child process:
````rs
pub enum ForkptyResult {
Parent {
child: Pid,
master: OwnedFd,
},
Child,
}
``` ([#2315](https://togithub.com/nix-rust/nix/pull/2315))
````
- Updated `cfg_aliases` dependency from version 0.1 to 0.2
([#2322](https://togithub.com/nix-rust/nix/pull/2322))
- Change the signature of `ptrace::write` and `ptrace::write_user` to make them
safe ([#2324](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/2367))
- Changed tee, splice and vmsplice RawFd arguments to AsFd.
([#2387](https://togithub.com/nix-rust/nix/pull/2387))
- Added I/O safety to the sys/aio module. Most functions that previously
accepted a `AsRawFd` argument now accept an `AsFd` instead.
([#2401](https://togithub.com/nix-rust/nix/pull/2401))
- `RecvMsg::cmsgs()` now returns a `Result`, and checks that cmsgs were not
truncated. ([#2413](https://togithub.com/nix-rust/nix/pull/2413))
##### Fixed
- No longer panics when the `fanotify` queue overflows.
([#2399](https://togithub.com/nix-rust/nix/pull/2399))
- Fixed ControlMessageOwned::UdpGroSegments wrapped type from u16 to i32 to
reflect the used kernel's one.
([#2406](https://togithub.com/nix-rust/nix/pull/2406))
### [`v0.28.0`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0280---2024-02-24)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.27.1...v0.28.0)
##### Added
- Added `mkdtemp` wrapper ([#1297](https://togithub.com/nix-rust/nix/pull/1297))
- Add associated constants `UTIME_OMIT` `UTIME_NOW` for `TimeSpec`
([#1879](https://togithub.com/nix-rust/nix/pull/1879))
- Added `EventFd` type. ([#1945](https://togithub.com/nix-rust/nix/pull/1945))
- - Added `impl From for SigSet`.
- Added `impl std::ops::BitOr for SigSet`.
- Added `impl std::ops::BitOr for Signal`.
- Added `impl std::ops::BitOr for SigSet`
([#1959](https://togithub.com/nix-rust/nix/pull/1959))
- Added `TlsGetRecordType` control message type and corresponding enum for
linux ([#2065](https://togithub.com/nix-rust/nix/pull/2065))
- Added `Ipv6HopLimit` to `::nix::sys::socket::ControlMessage` for Linux,
MacOS, FreeBSD, DragonflyBSD, Android, iOS and Haiku.
([#2074](https://togithub.com/nix-rust/nix/pull/2074))
- Added `Icmp` and `IcmpV6` to `SockProtocol`
([#2103](https://togithub.com/nix-rust/nix/pull/2103))
- Added rfork support for FreeBSD in `unistd`
([#2121](https://togithub.com/nix-rust/nix/pull/2121))
- Added `MapFlags::map_hugetlb_with_size_log2` method for Linux targets
([#2125](https://togithub.com/nix-rust/nix/pull/2125))
- Added `mmap_anonymous` function
([#2127](https://togithub.com/nix-rust/nix/pull/2127))
- Added `mips32r6` and `mips64r6` support for signal, ioctl and ptrace
([#2138](https://togithub.com/nix-rust/nix/pull/2138))
- Added `F_GETPATH` FcntlFlags entry on Apple/NetBSD/DragonflyBSD for
`::nix::fcntl`. ([#2142](https://togithub.com/nix-rust/nix/pull/2142))
- Added `F_KINFO` FcntlFlags entry on FreeBSD for `::nix::fcntl`.
([#2152](https://togithub.com/nix-rust/nix/pull/2152))
- Added `F_GETPATH_NOFIRMLINK` and `F_BARRIERFSYNC` FcntlFlags entry
on Apple for `::nix::fcntl`.
([#2155](https://togithub.com/nix-rust/nix/pull/2155))
- Added newtype `Flock` to automatically unlock a held flock upon drop.
Added `Flockable` trait to represent valid types for `Flock`.
([#2170](https://togithub.com/nix-rust/nix/pull/2170))
- Added `SetSockOpt` impls to enable Linux Kernel TLS on a TCP socket and to
import TLS parameters. ([#2175](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/2187))
- Added new fanotify API: wrappers for `fanotify_init` and `fanotify_mark`
([#2194](https://togithub.com/nix-rust/nix/pull/2194))
- Added `SpecialCharacterindices` support for haiku.
([#2195](https://togithub.com/nix-rust/nix/pull/2195))
- Added `sys::sendfile` support for solaris/illumos.
([#2198](https://togithub.com/nix-rust/nix/pull/2198))
- impl Display for InterfaceFlags
([#2206](https://togithub.com/nix-rust/nix/pull/2206))
- Added `sendfilev` in sys::sendfile for solarish
([#2207](https://togithub.com/nix-rust/nix/pull/2207))
- Added `fctrl::SealFlag::F_SEAL_FUTURE_WRITE`
([#2213](https://togithub.com/nix-rust/nix/pull/2213))
- Added `Ipv6MulticastHops` as socket option to set and read.
([#2234](https://togithub.com/nix-rust/nix/pull/2234))
- Enable `ControlMessageOwned::Ipv4RecvIf` and
`ControlMessageOwned::Ipv4RecvDstAddr` for DragonFlyBSD
([#2240](https://togithub.com/nix-rust/nix/pull/2240))
- `ClockId::set_time()` and `time::clock_settime()` are now enabled on macOS
([#2241](https://togithub.com/nix-rust/nix/pull/2241))
- Added `IpBindAddressNoPort` sockopt to support `IP_BIND_ADDRESS_NO_PORT`
available on linux. ([#2244](https://togithub.com/nix-rust/nix/pull/2244))
- Enable `MapFlags::map_hugetlb_with_size_log2` method for Android/Fuchsia
([#2245](https://togithub.com/nix-rust/nix/pull/2245))
- Added `TcpFastOpenConnect` sockopt to support `TCP_FASTOPEN_CONNECT`
available on linux. ([#2247](https://togithub.com/nix-rust/nix/pull/2247))
- Add `reboot(2)` for OpenBSD/NetBSD
([#2251](https://togithub.com/nix-rust/nix/pull/2251))
- Added new `MemFdCreateFlag` constants to `sys::memfd` on Linux and Android
related to hugetlbfs support.
([#2252](https://togithub.com/nix-rust/nix/pull/2252))
- Expose the inner fd of `Kqueue` through:
- impl AsFd for Kqueue
- impl From\ for OwnedFd
([#2258](https://togithub.com/nix-rust/nix/pull/2258))
- Added `sys::eventfd` support on FreeBSD
([#2259](https://togithub.com/nix-rust/nix/pull/2259))
- Added `MmapFlags::MAP_FIXED` constant in `sys::mman` for netbsd and openbsd
([#2260](https://togithub.com/nix-rust/nix/pull/2260))
- Added the `SO_LISTENQLIMIT` sockopt.
([#2263](https://togithub.com/nix-rust/nix/pull/2263))
- Enable the `AT_EMPTY_PATH` flag for the `fchownat()` function
([#2267](https://togithub.com/nix-rust/nix/pull/2267))
- Add `AtFlags::AT_EMPTY_PATH` for FreeBSD and Hurd
([#2270](https://togithub.com/nix-rust/nix/pull/2270))
- Enable \`OFlag::O_DIRECTORY for Solarish
([#2275](https://togithub.com/nix-rust/nix/pull/2275))
- Added the `Backlog` wrapper type for the `listen` call.
([#2276](https://togithub.com/nix-rust/nix/pull/2276))
- Add `clock_nanosleep()` ([#2277](https://togithub.com/nix-rust/nix/pull/2277))
- Enabled `O_DIRECT` in `fcntl::OFlags` for solarish
([#2278](https://togithub.com/nix-rust/nix/pull/2278))
- Added a new API sigsuspend.
([#2279](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/2283))
- Enable the `AT_EMPTY_PATH` flag for the `linkat()` function
([#2284](https://togithub.com/nix-rust/nix/pull/2284))
- Enable unistd::{sync, syncfs} for Android
([#2296](https://togithub.com/nix-rust/nix/pull/2296))
##### Changed
- `poll` now takes `PollTimeout` replacing `libc::c_int`.
([#1876](https://togithub.com/nix-rust/nix/pull/1876))
- Deprecated `sys::eventfd::eventfd`.
([#1945](https://togithub.com/nix-rust/nix/pull/1945))
- `mmap`, `mmap_anonymous`, `munmap`, `mremap`, `madvise`, `msync`, `mprotect`,
`munlock` and `mlock` updated to use `NonNull`.
([#2000](https://togithub.com/nix-rust/nix/pull/2000))
- `mmap` function now accepts `F` instead of `Option`
([#2127](https://togithub.com/nix-rust/nix/pull/2127))
- `PollFd::new` now takes a `BorrowedFd` argument, with relaxed lifetime
requirements relative to the previous version.
([#2134](https://togithub.com/nix-rust/nix/pull/2134))
- `FdSet::{insert, remove, contains}` now take `BorrowedFd` arguments, and have
relaxed lifetime requirements relative to 0.27.1.
([#2136](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/2137))
- Changed `openat()` and `Dir::openat()`, now take optional `dirfd`s
([#2139](https://togithub.com/nix-rust/nix/pull/2139))
- The MSRV is now 1.69 ([#2144](https://togithub.com/nix-rust/nix/pull/2144))
- Changed function `SockaddrIn::ip()` to return `net::Ipv4Addr` and refactored
`SocketAddrV6::ip()` to be `const`
([#2151](https://togithub.com/nix-rust/nix/pull/2151))
- The following APIs now take optional `dirfd`s:
- `readlinkat()`
- `fstatat()`
- `mknodat()`
- `mkdirat()`
- `execveat()`
([#2157](https://togithub.com/nix-rust/nix/pull/2157))
- `Epoll::wait` now takes `EpollTimeout` replacing `isize`.
([#2202](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/2283))
##### Fixed
- Fix `SigSet` incorrect implementation of `Eq`, `PartialEq` and `Hash`
([#1946](https://togithub.com/nix-rust/nix/pull/1946))
- Fixed `::sys::socket::sockopt::IpMulticastTtl` by fixing the value of optlen
passed to `libc::setsockopt` and added tests.
([#2072](https://togithub.com/nix-rust/nix/pull/2072))
- Fixed the function signature of `recvmmsg`, potentially causing UB
([#2119](https://togithub.com/nix-rust/nix/pull/2119))
- Fix `SignalFd::set_mask`. In 0.27.0 it would actually close the file
descriptor. ([#2141](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/2242))
- Fixed solaris build globally.
([#2248](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/2268))
- Fixed `::unistd::Group::members` using read_unaligned to avoid crash on
misaligned pointers ([#2311](https://togithub.com/nix-rust/nix/pull/2311))
##### Removed
- The `FchownatFlags` type has been deprecated, please use `AtFlags` instead.
([#2267](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/2268))
- The `LinkatFlags` type has been deprecated, please use `AtFlags` instead.
([#2284](https://togithub.com/nix-rust/nix/pull/2284))
### [`v0.27.1`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0271---2023-08-28)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.27.0...v0.27.1)
##### Fixed
- Fixed generating the documentation on docs.rs.
([#2111](https://togithub.com/nix-rust/nix/pull/2111))
### [`v0.27.0`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0270---2023-08-28)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.26.4...v0.27.0)
##### Added
- Added `AT_EACCESS` to `AtFlags` on all platforms but android
([#1995](https://togithub.com/nix-rust/nix/pull/1995))
- Add `PF_ROUTE` to `SockType` on macOS, iOS, all of the BSDs, Fuchsia, Haiku, Illumos.
([#1867](https://togithub.com/nix-rust/nix/pull/1867))
- Added `nix::ucontext` module on `aarch64-unknown-linux-gnu`.
(#[1662](https://togithub.com/nix-rust/nix/pull/1662))
- Added `CanRaw` to `SockProtocol` and `CanBcm` as a separate `SocProtocol` constant.
([#1912](https://togithub.com/nix-rust/nix/pull/1912))
- Added `Generic` and `NFLOG` to `SockProtocol`.
([#2092](https://togithub.com/nix-rust/nix/pull/2092))
- Added `mq_timedreceive` to `::nix::mqueue`.
(\[[#1966](https://togithub.com/nix-rust/nix/issues/1966)])([https://github.com/nix-rust/nix/pull/1966](https://togithub.com/nix-rust/nix/pull/1966))
- Added `LocalPeerPid` to `nix::sys::socket::sockopt` for macOS. ([#1967](https://togithub.com/nix-rust/nix/pull/1967))
- Added `TFD_TIMER_CANCEL_ON_SET` to `::nix::sys::time::TimerSetTimeFlags` on Linux and Android.
([#2040](https://togithub.com/nix-rust/nix/pull/2040))
- Added `SOF_TIMESTAMPING_OPT_ID` and `SOF_TIMESTAMPING_OPT_TSONLY` to `nix::sys::socket::TimestampingFlag`.
([#2048](https://togithub.com/nix-rust/nix/pull/2048))
- Enabled socket timestamping options on Android. ([#2077](https://togithub.com/nix-rust/nix/pull/2077))
- Added vsock support for macOS ([#2056](https://togithub.com/nix-rust/nix/pull/2056))
- Added `SO_SETFIB` and `SO_USER_COOKIE` to `nix::sys::socket::sockopt` for FreeBSD.
([#2085](https://togithub.com/nix-rust/nix/pull/2085))
- Added `SO_RTABLE` for OpenBSD and `SO_ACCEPTFILTER` for FreeBSD/NetBSD to `nix::sys::socket::sockopt`.
([#2085](https://togithub.com/nix-rust/nix/pull/2085))
- Added `MSG_WAITFORONE` to `MsgFlags` on Android, Fuchsia, Linux, NetBSD,
FreeBSD, OpenBSD, and Solaris.
([#2014](https://togithub.com/nix-rust/nix/pull/2014))
- Added `SO_TS_CLOCK` for FreeBSD to `nix::sys::socket::sockopt`.
([#2093](https://togithub.com/nix-rust/nix/pull/2093))
- Added support for prctl in Linux.
(#[1550](https://togithub.com/nix-rust/nix/pull/1550))
- `nix::socket` and `nix::select` are now available on Redox.
([#2012](https://togithub.com/nix-rust/nix/pull/2012))
- Implemented AsFd, AsRawFd, FromRawFd, and IntoRawFd for `mqueue::MqdT`.
([#2097](https://togithub.com/nix-rust/nix/pull/2097))
- Add the ability to set `kevent_flags` on `SigEvent`.
([#1731](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/1906))
- Use I/O safety with `copy_file_range`, and expose it on FreeBSD.
(#[1906](https://togithub.com/nix-rust/nix/pull/1906))
- The MSRV is now 1.65
([#1862](https://togithub.com/nix-rust/nix/pull/1862))
([#2104](https://togithub.com/nix-rust/nix/pull/2104))
- The epoll interface now uses a type.
([#1882](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/1921))
- Refactored `name` parameter of `mq_open` and `mq_unlink` to be generic over
`NixPath`.
([#2102](https://togithub.com/nix-rust/nix/pull/2102)).
- Made `clone` unsafe, like `fork`.
([#1993](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/1943))
- Removed deprecated IoVec API.
([#1855](https://togithub.com/nix-rust/nix/pull/1855))
- Removed deprecated net APIs.
([#1861](https://togithub.com/nix-rust/nix/pull/1861))
- `nix::sys::signalfd::signalfd` is deprecated. Use
`nix::sys::signalfd::SignalFd` instead.
([#1938](https://togithub.com/nix-rust/nix/pull/1938))
- Removed `SigEvent` support on Fuchsia, where it was unsound.
([#2079](https://togithub.com/nix-rust/nix/pull/2079))
- Removed `flock` from `::nix::fcntl` on Solaris.
([#2082](https://togithub.com/nix-rust/nix/pull/2082))
### [`v0.26.4`](https://togithub.com/nix-rust/nix/compare/v0.26.3...v0.26.4)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.26.3...v0.26.4)
### [`v0.26.3`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0263---2023-08-27)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.26.2...v0.26.3)
##### Fixed
- Fix: send `ETH_P_ALL` in htons format
([#1925](https://togithub.com/nix-rust/nix/pull/1925))
- Fix: `recvmsg` now sets the length of the received `sockaddr_un` field
correctly on Linux platforms. ([#2041](https://togithub.com/nix-rust/nix/pull/2041))
- Fix potentially invalid conversions in
`SockaddrIn::from`,
`SockaddrIn6::from`, `IpMembershipRequest::new`, and
`Ipv6MembershipRequest::new` with future Rust versions.
([#2061](https://togithub.com/nix-rust/nix/pull/2061))
- Fixed an incorrect lifetime returned from `recvmsg`.
([#2095](https://togithub.com/nix-rust/nix/pull/2095))
### [`v0.26.2`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0262---2023-01-18)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.26.1...v0.26.2)
##### Fixed
- Fix `SockaddrIn6` bug that was swapping `flowinfo` and `scope_id` byte
ordering.
([#1964](https://togithub.com/nix-rust/nix/pull/1964))
### [`v0.26.1`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0261---2022-11-29)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.26.0...v0.26.1)
##### Fixed
- Fix UB with `sys::socket::sockopt::SockType` using `SOCK_PACKET`.
([#1821](https://togithub.com/nix-rust/nix/pull/1821))
### [`v0.26.0`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0260---2022-11-29)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.25.1...v0.26.0)
##### Added
- Added `SockaddrStorage::{as_unix_addr, as_unix_addr_mut}`
([#1871](https://togithub.com/nix-rust/nix/pull/1871))
- Added `MntFlags` and `unmount` on all of the BSDs.
- Added `any()` and `all()` to `poll::PollFd`.
([#1877](https://togithub.com/nix-rust/nix/pull/1877))
- Add `MntFlags` and `unmount` on all of the BSDs.
([#1849](https://togithub.com/nix-rust/nix/pull/1849))
- Added a `Statfs::flags` method.
([#1849](https://togithub.com/nix-rust/nix/pull/1849))
- Added `NSFS_MAGIC` FsType on Linux and Android.
([#1829](https://togithub.com/nix-rust/nix/pull/1829))
- Added `sched_getcpu` on platforms that support it.
([#1825](https://togithub.com/nix-rust/nix/pull/1825))
- Added `sched_getaffinity` and `sched_setaffinity` on FreeBSD.
([#1804](https://togithub.com/nix-rust/nix/pull/1804))
- Added `line_discipline` field to `Termios` on Linux, Android and Haiku
([#1805](https://togithub.com/nix-rust/nix/pull/1805))
- Expose the memfd module on FreeBSD (memfd was added in FreeBSD 13)
([#1808](https://togithub.com/nix-rust/nix/pull/1808))
- Added `domainname` field of `UtsName` on Android and Linux
([#1817](https://togithub.com/nix-rust/nix/pull/1817))
- Re-export `RLIM_INFINITY` from `libc`
([#1831](https://togithub.com/nix-rust/nix/pull/1831))
- Added `syncfs(2)` on Linux
([#1833](https://togithub.com/nix-rust/nix/pull/1833))
- Added `faccessat(2)` on illumos
([#1841](https://togithub.com/nix-rust/nix/pull/1841))
- Added `eaccess()` on FreeBSD, DragonFly and Linux (glibc and musl).
([#1842](https://togithub.com/nix-rust/nix/pull/1842))
- Added `IP_TOS` `SO_PRIORITY` and `IPV6_TCLASS` sockopts for Linux
([#1853](https://togithub.com/nix-rust/nix/pull/1853))
- Added `new_unnamed` and `is_unnamed` for `UnixAddr` on Linux and Android.
([#1857](https://togithub.com/nix-rust/nix/pull/1857))
- Added `SockProtocol::Raw` for raw sockets
([#1848](https://togithub.com/nix-rust/nix/pull/1848))
- added `IP_MTU` (`IpMtu`) `IPPROTO_IP` sockopt on Linux and Android.
([#1865](https://togithub.com/nix-rust/nix/pull/1865))
##### Changed
- The MSRV is now 1.56.1
([#1792](https://togithub.com/nix-rust/nix/pull/1792))
- The `addr` argument of `sys::mman::mmap` is now of type `Option`.
([#1870](https://togithub.com/nix-rust/nix/pull/1870))
- The `length` argument of `sys::mman::mmap` is now of type `NonZeroUsize`.
([#1873](https://togithub.com/nix-rust/nix/pull/1873))
##### Fixed
- Fixed using `SockaddrStorage` to store a Unix-domain socket address on Linux.
([#1871](https://togithub.com/nix-rust/nix/pull/1871))
- Fix microsecond calculation for `TimeSpec`.
([#1801](https://togithub.com/nix-rust/nix/pull/1801))
- Fix `User::from_name` and `Group::from_name` panicking
when given a name containing a nul.
([#1815](https://togithub.com/nix-rust/nix/pull/1815))
- Fix `User::from_uid` and `User::from_name` crash on Android platform.
([#1824](https://togithub.com/nix-rust/nix/pull/1824))
- Workaround XNU bug causing netmasks returned by `getifaddrs` to misbehave.
([#1788](https://togithub.com/nix-rust/nix/pull/1788))
##### Removed
- Removed deprecated error constants and conversions.
([#1860](https://togithub.com/nix-rust/nix/pull/1860))
### [`v0.25.1`](https://togithub.com/nix-rust/nix/compare/v0.25.0...v0.25.1)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.25.0...v0.25.1)
### [`v0.25.0`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0250---2022-08-13)
[Compare Source](https://togithub.com/nix-rust/nix/compare/v0.24.3...v0.25.0)
##### Added
- Added `faccessat`
([#1780](https://togithub.com/nix-rust/nix/pull/1780))
- Added `memfd` on Android.
(#[1773](https://togithub.com/nix-rust/nix/pull/1773))
- Added `ETH_P_ALL` to `SockProtocol` enum
(#[1768](https://togithub.com/nix-rust/nix/pull/1768))
- Added four non-standard Linux `SysconfVar` variants
(#[1761](https://togithub.com/nix-rust/nix/pull/1761))
- Added const constructors for `TimeSpec` and `TimeVal`
(#[1760](https://togithub.com/nix-rust/nix/pull/1760))
- Added `chflags`.
(#[1758](https://togithub.com/nix-rust/nix/pull/1758))
- Added `aio_writev` and `aio_readv`.
(#[1713](https://togithub.com/nix-rust/nix/pull/1713))
- impl `From` for `Uid` and `From` for `Gid`
(#[1727](https://togithub.com/nix-rust/nix/pull/1727))
- impl `From` for `std::net::SocketAddrV4` and
impl `From` for `std::net::SocketAddrV6`.
(#[1711](https://togithub.com/nix-rust/nix/pull/1711))
- Added support for the `x86_64-unknown-haiku` target.
(#[1703](https://togithub.com/nix-rust/nix/pull/1703))
- Added `ptrace::read_user` and `ptrace::write_user` for Linux.
(#[1697](https://togithub.com/nix-rust/nix/pull/1697))
- Added `getrusage` and helper types `UsageWho` and `Usage`
(#[1747](https://togithub.com/nix-rust/nix/pull/1747))
- Added the `DontRoute` SockOpt
(#[1752](https://togithub.com/nix-rust/nix/pull/1752))
- Added `signal::SigSet::from_sigset_t_unchecked()`.
(#[1741](https://togithub.com/nix-rust/nix/pull/1741))
- Added the `Ipv4OrigDstAddr` sockopt and control message.
(#[1772](https://togithub.com/nix-rust/nix/pull/1772))
- Added the `Ipv6OrigDstAddr` sockopt and control message.
(#[1772](https://togithub.com/nix-rust/nix/pull/1772))
- Added the `Ipv4SendSrcAddr` control message.
(#[1776](https://togithub.com/nix-rust/nix/pull/1776))
##### Changed
- Reimplemented sendmmsg/recvmmsg to avoid allocations and with better API
(#[1744](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/1713))
- `nix::poll::ppoll`: `sigmask` parameter is now optional.
(#[1739](https://togithub.com/nix-rust/nix/pull/1739))
- Changed `gethostname` to return an owned `OsString`.
(#[1745](https://togithub.com/nix-rust/nix/pull/1745))
- `signal:SigSet` is now marked as `repr(transparent)`.
(#[1741](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/1713))
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: Whenever PR becomes conflicted, 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 has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
0.24.3
->0.29.0
Release Notes
nix-rust/nix (nix)
### [`v0.29.0`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0290---2024-05-24) [Compare Source](https://togithub.com/nix-rust/nix/compare/v0.28.0...v0.29.0) ##### Added - Add `getregset()/setregset()` for Linux/glibc/x86/x86\_64/aarch64/riscv64 and `getregs()/setregs()` for Linux/glibc/aarch64/riscv64 ([#2044](https://togithub.com/nix-rust/nix/pull/2044)) - Add socket option Ipv6Ttl for apple targets. ([#2287](https://togithub.com/nix-rust/nix/pull/2287)) - Add socket option UtunIfname. ([#2325](https://togithub.com/nix-rust/nix/pull/2325)) - make SigAction repr(transparent) & can be converted to the libc raw type ([#2326](https://togithub.com/nix-rust/nix/pull/2326)) - Add `From` trait implementation for conversions between `sockaddr_in` and `SockaddrIn`, `sockaddr_in6` and `SockaddrIn6` ([#2328](https://togithub.com/nix-rust/nix/pull/2328)) - Add socket option ReusePortLb for FreeBSD. ([#2332](https://togithub.com/nix-rust/nix/pull/2332)) - Added support for openat2 on linux. ([#2339](https://togithub.com/nix-rust/nix/pull/2339)) - Add if_indextoname function. ([#2340](https://togithub.com/nix-rust/nix/pull/2340)) - Add `mount` and `unmount` API for apple targets. ([#2347](https://togithub.com/nix-rust/nix/pull/2347)) - Added `_PC_MIN_HOLE_SIZE` for `pathconf` and `fpathconf`. ([#2349](https://togithub.com/nix-rust/nix/pull/2349)) - Added `impl AsFd for pty::PtyMaster` ([#2355](https://togithub.com/nix-rust/nix/pull/2355)) - Add `open` flag `O_SEARCH` to AIX, Empscripten, FreeBSD, Fuchsia, solarish, WASI ([#2374](https://togithub.com/nix-rust/nix/pull/2374)) - Add prctl function `prctl_set_vma_anon_name` for Linux/Android. ([#2378](https://togithub.com/nix-rust/nix/pull/2378)) - Add `sync(2)` for `apple_targets/solarish/haiku/aix/hurd`, `syncfs(2)` for `hurd` and `fdatasync(2)` for `aix/hurd` ([#2379](https://togithub.com/nix-rust/nix/pull/2379)) - Add fdatasync support for Apple targets. ([#2380](https://togithub.com/nix-rust/nix/pull/2380)) - Add `fcntl::OFlag::O_PATH` for FreeBSD and Fuchsia ([#2382](https://togithub.com/nix-rust/nix/pull/2382)) - Added `PathconfVar::MIN_HOLE_SIZE` for apple_targets. ([#2388](https://togithub.com/nix-rust/nix/pull/2388)) - Add `open` flag `O_SEARCH` to apple_targets ([#2391](https://togithub.com/nix-rust/nix/pull/2391)) - `O_DSYNC` may now be used with `aio_fsync` and `fcntl` on FreeBSD. ([#2404](https://togithub.com/nix-rust/nix/pull/2404)) - Added `Flock::relock` for upgrading and downgrading locks. ([#2407](https://togithub.com/nix-rust/nix/pull/2407)) ##### Changed - Change the `ForkptyResult` type to the following repr so that the uninitialized `master` field won't be accessed in the child process: ````rs pub enum ForkptyResult { Parent { child: Pid, master: OwnedFd, }, Child, } ``` ([#2315](https://togithub.com/nix-rust/nix/pull/2315)) ```` - Updated `cfg_aliases` dependency from version 0.1 to 0.2 ([#2322](https://togithub.com/nix-rust/nix/pull/2322)) - Change the signature of `ptrace::write` and `ptrace::write_user` to make them safe ([#2324](https://togithub.com/nix-rust/nix/pull/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](https://togithub.com/nix-rust/nix/pull/2367)) - Changed tee, splice and vmsplice RawFd arguments to AsFd. ([#2387](https://togithub.com/nix-rust/nix/pull/2387)) - Added I/O safety to the sys/aio module. Most functions that previously accepted a `AsRawFd` argument now accept an `AsFd` instead. ([#2401](https://togithub.com/nix-rust/nix/pull/2401)) - `RecvMsg::cmsgs()` now returns a `Result`, and checks that cmsgs were not truncated. ([#2413](https://togithub.com/nix-rust/nix/pull/2413)) ##### Fixed - No longer panics when the `fanotify` queue overflows. ([#2399](https://togithub.com/nix-rust/nix/pull/2399)) - Fixed ControlMessageOwned::UdpGroSegments wrapped type from u16 to i32 to reflect the used kernel's one. ([#2406](https://togithub.com/nix-rust/nix/pull/2406)) ### [`v0.28.0`](https://togithub.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0280---2024-02-24) [Compare Source](https://togithub.com/nix-rust/nix/compare/v0.27.1...v0.28.0) ##### Added - Added `mkdtemp` wrapper ([#1297](https://togithub.com/nix-rust/nix/pull/1297)) - Add associated constants `UTIME_OMIT` `UTIME_NOW` for `TimeSpec` ([#1879](https://togithub.com/nix-rust/nix/pull/1879)) - Added `EventFd` type. ([#1945](https://togithub.com/nix-rust/nix/pull/1945)) - - Added `impl FromConfiguration
📅 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: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.