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))
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.27.1
->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.