зеркало из https://github.com/mozilla/gecko-dev.git
32 KiB
32 KiB
Change Log
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
[0.13.1] - 2019-06-10
Added
Changed
- Changed some public types from reexports of libc types like
uint32_t
to the native equivalents like u32. (#1072)
Fixed
- Fixed the build on Android and Linux/mips with recent versions of libc. (#1072)
- Fixed build on Linux/arm and Linux/s390x with the latest Rust libc (52102cb)
Removed
Daemon
,NOTE_REAP
, andNOTE_EXIT_REPARENTED
are now deprecated on OSX and iOS. (#1033)
[0.13.0] - 2019-01-15
Added
- Added PKTINFO(V4) & V6PKTINFO cmsg support - Android/FreeBSD/iOS/Linux/MacOS. (#990)
- Added support of CString type in
setsockopt
. (#972) - Added option
TCP_CONGESTION
insetsockopt
. (#972) - Added
symlinkat
wrapper. (#997) - Added
ptrace::{getregs, setregs}
. (#1010) - Added
nix::sys::signal::signal
. (#817)
Changed
Fixed
lutimes
never worked on OpenBSD as it is not implemented on OpenBSD. It has been removed. (#1000)fexecve
never worked on NetBSD or on OpenBSD as it is not implemented on either OS. It has been removed. (#1000)
Removed
[0.12.0] 2018-11-28
Added
- Added
FromStr
andDisplay
impls fornix::sys::Signal
(#884) - Added a
sync
wrapper. (#961) - Added a
sysinfo
wrapper. (#922) - Support the
SO_PEERCRED
socket option and theUnixCredentials
type on all Linux and Android targets. (#921) - Added support for
SCM_CREDENTIALS
, allowing to send process credentials over Unix sockets. (#923) - Added a
dir
module for reading directories (wrapsfdopendir
,readdir
, andrewinddir
). (#916) - Added
kmod
module that allows loading and unloading kernel modules on Linux. (#930) - Added
futimens
andutimesat
wrappers (#944), anlutimes
wrapper (#967), and autimes
wrapper (#946). - Added
AF_UNSPEC
wrapper toAddressFamily
(#948) - Added the
mode_t
public alias withinsys::stat
. (#954) - Added a
truncate
wrapper. (#956) - Added a
fchownat
wrapper. (#955) - Added support for
ptrace
on BSD operating systems (#949) - Added
ptrace
functions for reads and writes to tracee memory and ptrace kill (#949) (#958) - Added a
acct
wrapper module for enabling and disabling process accounting (#952) - Added the
time_t
andsuseconds_t
public aliases withinsys::time
. (#968) - Added
unistd::execvpe
for Haiku, Linux and OpenBSD (#975) - Added
Error::as_errno
. (#977)
Changed
Fixed
- Made
preadv
take immutable slice of IoVec. (#914) - Fixed passing multiple file descriptors over Unix Sockets. (#918)
Removed
[0.11.0] 2018-06-01
Added
- Added
sendfile
on FreeBSD and Darwin. (#901) - Added
pselect
(#894) - Exposed
preadv
andpwritev
on the BSDs. (#883) - Added
mlockall
andmunlockall
(#876) - Added
SO_MARK
on Linux. (#873) - Added safe support for nearly any buffer type in the
sys::aio
module. (#872) - Added
sys::aio::LioCb
as a wrapper forlibc::lio_listio
. (#872) - Added
unistd::getsid
(#850) - Added
alarm
. (#830) - Added interface flags
IFF_NO_PI, IFF_TUN, IFF_TAP
on linux-like systems. (#853) - Added
statvfs
module to all MacOS and Linux architectures. (#832) - Added
EVFILT_EMPTY
,EVFILT_PROCDESC
, andEVFILT_SENDFILE
on FreeBSD. (#825) - Exposed
termios::cfmakesane
on FreeBSD. (#825) - Exposed
MSG_CMSG_CLOEXEC
on *BSD. (#825) - Added
fchmod
,fchmodat
. (#857) - Added
request_code_write_int!
on FreeBSD/DragonFlyBSD (#833)
Changed
Display
andDebug
forSysControlAddr
now includes all fields. (#837)ioctl!
has been replaced with a family ofioctl_*!
macros. (#833)io!
,ior!
,iow!
, andiorw!
has been renamed torequest_code_none!
,request_code_read!
,request_code_write!
, andrequest_code_readwrite!
respectively. These have also now been exposed in the documentation. (#833)- Enabled more
ptrace::Request
definitions for uncommon Linux platforms (#892) - Emulation of
FD_CLOEXEC
andO_NONBLOCK
was removed fromsocket()
,accept4()
, andsocketpair()
. (#907)
Fixed
- Fixed possible panics when using
SigAction::flags
on Linux (#869) - Properly exposed 460800 and 921600 baud rates on NetBSD (#837)
- Fixed
ioctl_write_int!
on FreeBSD/DragonFlyBSD (#833) ioctl_write_int!
now properly supports passing ac_ulong
as the parameter on Linux non-musl targets (#833)
Removed
- Removed explicit support for the
bytes
crate from thesys::aio
module. Seesys::aio::AioCb::from_boxed_slice
examples for alternatives. (#872) - Removed
sys::aio::lio_listio
. Usesys::aio::LioCb::listio
instead. (#872) - Removed emulated
accept4()
from macos, ios, and netbsd targets (#907) - Removed
IFF_NOTRAILERS
on OpenBSD, as it has been removed in OpenBSD 6.3 (#893)
[0.10.0] 2018-01-26
Added
- Added specialized wrapper:
sys::ptrace::step
(#852) - Added
AioCb::from_ptr
andAioCb::from_mut_ptr
(#820) - Added specialized wrappers:
sys::ptrace::{traceme, syscall, cont, attach}
. Using the matching routines withsys::ptrace::ptrace
is now deprecated. - Added
nix::poll
module for all platforms (#672) - Added
nix::ppoll
function for FreeBSD and DragonFly (#672) - Added protocol families in
AddressFamily
enum. (#647) - Added the
pid()
method toWaitStatus
for extracting the PID. (#722) - Added
nix::unistd:fexecve
. (#727) - Expose
uname()
on all platforms. (#739) - Expose
signalfd
module on Android as well. (#739) - Added
nix::sys::ptrace::detach
. (#749) - Added timestamp socket control message variant:
nix::sys::socket::ControlMessage::ScmTimestamp
(#663) - Added socket option variant that enables the timestamp socket
control message:
nix::sys::socket::sockopt::ReceiveTimestamp
(#663) - Added more accessor methods for
AioCb
(#773) - Add
nix::sys::fallocate
(#768) - Added
nix::unistd::mkfifo
. (#602) - Added
ptrace::Options::PTRACE_O_EXITKILL
on Linux and Android. (#771) - Added
nix::sys::uio::{process_vm_readv, process_vm_writev}
on Linux (#568) - Added
nix::unistd::{getgroups, setgroups, getgrouplist, initgroups}
. (#733) - Added
nix::sys::socket::UnixAddr::as_abstract
on Linux and Android. (#785) - Added
nix::unistd::execveat
on Linux and Android. (#800) - Added the
from_raw()
method toWaitStatus
for converting raw status values toWaitStatus
independent of syscalls. (#741) - Added more standard trait implementations for various types. (#814)
- Added
sigprocmask
to the signal module. (#826) - Added
nix::sys::socket::LinkAddr
on Linux and all bsdlike system. (#813) - Add socket options for
IP_TRANSPARENT
/BIND_ANY
. (#835)
Changed
- Exposed the
mqueue
module for all supported operating systems. (#834) - Use native
pipe2
on all BSD targets. Users should notice no difference. (#777) - Renamed existing
ptrace
wrappers to encourage namespacing (#692) - Marked
sys::ptrace::ptrace
asunsafe
. - Changed function signature of
socket()
andsocketpair()
. Theprotocol
argument has changed type fromc_int
toSockProtocol
. It accepts aNone
value for default protocol that was specified with zero usingc_int
. (#647) - Made
select
easier to use, adding the ability to automatically calculate thenfds
parameter using the newFdSet::highest
(#701) - Exposed
unistd::setresuid
andunistd::setresgid
on FreeBSD and OpenBSD (#721) - Refactored the
statvfs
module removing extraneous API functions and thestatvfs::vfs
module. Additionally(f)statvfs()
now return the struct directly. And the returnedStatvfs
struct now exposes its data through accessor methods. (#729) - The
addr
argument tomadvise
andmsync
is now*mut
to better match the libc API. (#731) shm_open
andshm_unlink
are no longer exposed on Android targets, where they are not officially supported. (#731)MapFlags
,MmapAdvise
, andMsFlags
expose some more variants and only officially-supported variants are provided for each target. (#731)- Marked
pty::ptsname
function asunsafe
(#744) - Moved constants ptrace request, event and options to enums and updated ptrace functions and argument types accordingly. (#749)
AioCb::Drop
will now panic if theAioCb
is still in-progress (#715)- Restricted
nix::sys::socket::UnixAddr::new_abstract
to Linux and Android only. (#785) - The
ucred
struct has been removed in favor of aUserCredentials
struct that contains only getters for its fields. (#814) - Both
ip_mreq
andipv6_mreq
have been replaced withIpMembershipRequest
andIpv6MembershipRequest
. (#814) - Removed return type from
pause
. (#829) - Changed the termios APIs to allow for using a
u32
instead of theBaudRate
enum on BSD platforms to support arbitrary baud rates. See the module docs fornix::sys::termios
for more details. (#843)
Fixed
- Fix compilation and tests for OpenBSD targets (#688)
- Fixed error handling in
AioCb::fsync
,AioCb::read
, andAioCb::write
. It is no longer an error to drop anAioCb
that failed to enqueue in the OS. (#715) - Fix potential memory corruption on non-Linux platforms when using
sendmsg
/recvmsg
, caused by mismatchedmsghdr
definition. (#648)
Removed
AioCb::from_boxed_slice
has been removed. It was never actually safe. Usefrom_bytes
orfrom_bytes_mut
instead. (#820)- The syscall module has been removed. This only exposed enough functionality for
memfd_create()
andpivot_root()
, which are still exposed as separate functions. (#747) - The
Errno
variants are no longer reexported from theerrno
module.Errno
itself is no longer reexported from the crate root and instead must be accessed using theerrno
module. (#696) - Removed
MS_VERBOSE
,MS_NOSEC
, andMS_BORN
fromMsFlags
. These are internal kernel flags and should never have been exposed. (#814)
[0.9.0] 2017-07-23
Added
- Added
sysconf
,pathconf
, andfpathconf
(#630 - Added
sys::signal::SigAction::{ flags, mask, handler}
(#611 - Added
nix::sys::pthread::pthread_self
(#591 - Added
AioCb::from_boxed_slice
(#582 - Added
nix::unistd::{openat, fstatat, readlink, readlinkat}
(#551) - Added
nix::pty::{grantpt, posix_openpt, ptsname/ptsname_r, unlockpt}
(#556 - Added
nix::ptr::openpty
(#456) - Added
nix::ptrace::{ptrace_get_data, ptrace_getsiginfo, ptrace_setsiginfo and nix::Error::UnsupportedOperation}
(#614) - Added
cfmakeraw
,cfsetspeed
, andtcgetsid
. (#527) - Added "bad none", "bad write_ptr", "bad write_int", and "bad readwrite" variants to the
ioctl!
macro. (#670) - On Linux and Android, added support for receiving
PTRACE_O_TRACESYSGOOD
events fromwait
andwaitpid
usingWaitStatus::PtraceSyscall
(#566).
Changed
- The
ioctl!
macro and its variants now allow the generated functions to have doccomments. (#661) - Changed
ioctl!(write ...)
intoioctl!(write_ptr ...)
andioctl!(write_int ..)
variants to more clearly separate those use cases. (#670) - Marked
sys::mman::{ mmap, munmap, madvise, munlock, msync }
as unsafe. (#559) - Minimum supported Rust version is now 1.13.
- Removed
revents
argument fromPollFd::new()
as it's an output argument and will be overwritten regardless of value. (#542) - Changed type signature of
sys::select::FdSet::contains
to makeself
immutable (#564) - Introduced wrapper types for
gid_t
,pid_t
, anduid_t
asGid
,Pid
, andUid
respectively. Various functions have been changed to use these new types as arguments. (#629) - Fixed compilation on all Android and iOS targets (#527) and promoted them to Tier 2 support.
nix::sys::statfs::{statfs,fstatfs}
uses statfs definition fromlibc::statfs
instead of own linux specific typenix::sys::Statfs
. Also file system type constants likenix::sys::statfs::ADFS_SUPER_MAGIC
were removed in favor of the libc equivalent. (#561)- Revised the termios API including additional tests and documentation and exposed it on iOS. (#527)
eventfd
,signalfd
, andpwritev
/preadv
functionality is now included by default for all supported platforms. (#681)- The
ioctl!
macro's plain variants has been replaced with "bad read" to be consistent with other variants. The generated functions also have more strict types for their arguments. The "*_buf" variants also now calculate total array size and take slice references for improved type safety. The documentation has also been dramatically improved. (#670)
Removed
- Removed
io::Error
fromnix::Error
and the conversion fromnix::Error
toErrno
(#614) - All feature flags have been removed in favor of conditional compilation on supported platforms.
execvpe
is no longer supported, but this was already broken and will be added back in the next release. (#681) - Removed
ioc_*
functions and many helper constants and macros within theioctl
module. These should always have been private and only theioctl!
should be used in public code. (#670)
Fixed
- Fixed multiple issues compiling under different archetectures and OSes.
Now compiles on Linux/MIPS (#538),
Linux/PPC
(#553),MacOS/x86_64,i686
(#553),NetBSD/x64_64
(#538),FreeBSD/x86_64,i686
(#536), andAndroid
(#631). bind
anderrno_location
now work correctly onAndroid
(#631)- Added
nix::ptrace
on all Linux-kernel-based platforms #624. Previously it was only available on x86, x86-64, and ARM, and also not on Android. - Fixed
sys::socket::sendmsg
with zero entrycmsgs
parameter. (#623) - Multiple constants related to the termios API have now been properly defined for all supported platforms. (#527)
ioctl!
macro now supports working with non-int datatypes and properly supports all platforms. (#670)
[0.8.1] 2017-04-16
Fixed
- Fixed build on FreeBSD. (Cherry-picked a859ee3c)
[0.8.0] 2017-03-02
Added
- Added
::nix::sys::termios::BaudRate
enum to provide portable baudrate values. (#518) - Added a new
WaitStatus::PtraceEvent
to support ptrace events on Linux and Android (#438) - Added support for POSIX AIO (#483) (#506)
- Added support for XNU system control sockets (#478)
- Added support for
ioctl
calls on BSD platforms (#478) - Added struct
TimeSpec
(#475) (#483) - Added complete definitions for all kqueue-related constants on all supported OSes (#415)
- Added function
epoll_create1
and bitflagsEpollCreateFlags
in::nix::sys::epoll
in order to support::libc::epoll_create1
. (#410) - Added
setresuid
andsetresgid
for Linux in::nix::unistd
(#448) - Added
getpgid
in::nix::unistd
(#433) - Added
tcgetpgrp
andtcsetpgrp
in::nix::unistd
(#451) - Added
CLONE_NEWCGROUP
in::nix::sched
(#457) - Added
getpgrp
in::nix::unistd
(#491) - Added
fchdir
in::nix::unistd
(#497) - Added
major
andminor
in::nix::sys::stat
for decomposingdev_t
(#508) - Fixed the style of many bitflags and use
libc
in more places. (#503) - Added
ppoll
in::nix::poll
(#520) - Added support for getting and setting pipe size with fcntl(2) on Linux (#540)
Changed
::nix::sys::termios::{cfgetispeed, cfsetispeed, cfgetospeed, cfsetospeed}
switched to useBaudRate
enum fromspeed_t
. (#518)epoll_ctl
now could accept None as argumentevent
when op isEpollOp::EpollCtlDel
. (#480)- Removed the
bad
keyword from theioctl!
macro (#478) - Changed
TimeVal
into an opaque Newtype (#475) kill
's signature, defined in::nix::sys::signal
, changed, so that the signal parameter has typeT: Into<Option<Signal>>
.None
as an argument for that parameter will result in a 0 passed to libc'skill
, while aSome
-argument will result in the previous behavior for the containedSignal
. (#445)- The minimum supported version of rustc is now 1.7.0. (#444)
- Changed
KEvent
to an opaque structure that may only be modified by its constructor and theev_set
method. (#415) (#442) (#463) pipe2
now callslibc::pipe2
where available. Previously it was emulated usingpipe
, which meant that settingO_CLOEXEC
was not atomic. (#427)- Renamed
EpollEventKind
toEpollFlags
in::nix::sys::epoll
in order for it to conform with our conventions. (#410) EpollEvent
in::nix::sys::epoll
is now an opaque proxy for::libc::epoll_event
. The formerly public fieldevents
is now be read-only accessible with the new methodevents()
ofEpollEvent
. Instances ofEpollEvent
can be constructed using the new methodnew()
of EpollEvent. (#410)SigFlags
in::nix::sys::signal
has be renamed toSigmaskHow
and its type has changed frombitflags
toenum
in order to conform to our conventions. (#460)sethostname
now takes a&str
instead of a&[u8]
as this provides an API that makes more sense in normal, correct usage of the API.gethostname
previously did not expose the actual length of the hostname written from the underlying system call at all. This has been updated to return a&CStr
within the provided buffer that is always properly NUL-terminated (this is not guaranteed by the call with all platforms/libc implementations).- Exposed all fcntl(2) operations at the module level, so they can be
imported direclty instead of via
FcntlArg
enum. (#541)
Fixed
- Fixed multiple issues with Unix domain sockets on non-Linux OSes (#474)
- Fixed using kqueue with
EVFILT_USER
on FreeBSD (#415) - Fixed the build on FreeBSD, and fixed the getsockopt, sendmsg, and recvmsg functions on that same OS. (#397)
- Fixed an off-by-one bug in
UnixAddr::new_abstract
in::nix::sys::socket
. (#429) - Fixed clone passing a potentially unaligned stack. (#490)
- Fixed mkdev not creating a
dev_t
the same way as libc. (#508)
[0.7.0] 2016-09-09
Added
- Added
lseek
andlseek64
in::nix::unistd
(#377) - Added
mkdir
andgetcwd
in::nix::unistd
(#416) - Added accessors
sigmask_mut
andsigmask
toUContext
in::nix::ucontext
. (#370) - Added
WUNTRACED
toWaitPidFlag
in::nix::sys::wait
for non-linux targets. (#379) - Added new module
::nix::sys::reboot
with enumerationRebootMode
and functionsreboot
andset_cad_enabled
. Currently for linux only. (#386) FdSet
in::nix::sys::select
now also implementsClone
. (#405)- Added
F_FULLFSYNC
toFcntlArg
in::nix::fcntl
for apple targets. (#407) - Added
CpuSet::unset
in::nix::sched
. (#402) - Added constructor method
new()
toPollFd
in::nix::poll
, in order to allow creation of objects, after removing public access to members. (#399) - Added method
revents()
toPollFd
in::nix::poll
, in order to provide read access to formerly public memberrevents
. (#399) - Added
MSG_CMSG_CLOEXEC
toMsgFlags
in::nix::sys::socket
for linux only. (#422)
Changed
- Replaced the reexported integer constants for signals by the enumeration
Signal
in::nix::sys::signal
. (#362) - Renamed
EventFdFlag
toEfdFlags
in::nix::sys::eventfd
. (#383) - Changed the result types of
CpuSet::is_set
andCpuSet::set
in::nix::sched
toResult<bool>
andResult<()>
, respectively. They now returnEINVAL
, if an invalid argument for thefield
parameter is passed. (#402) MqAttr
in::nix::mqueue
is now an opaque proxy for::libc::mq_attr
, which has the same structure as the oldMqAttr
. The fieldmq_flags
of::libc::mq_attr
is readable using the new methodflags()
ofMqAttr
.MqAttr
also no longer implementsDebug
. (#392)- The parameter
msq_prio
ofmq_receive
with typeu32
in::nix::mqueue
was replaced by a parameter namedmsg_prio
with type&mut u32
, so that the message priority can be obtained by the caller. (#392) - The type alias
MQd
in::nix::queue
was replaced by the type aliaslibc::mqd_t
, both of which are aliases for the same type. (#392)
Removed
- Type alias
SigNum
from::nix::sys::signal
. (#362) - Type alias
CpuMask
from::nix::shed
. (#402) - Removed public fields from
PollFd
in::nix::poll
. (See also added methodrevents()
. (#399)
Fixed
- Fixed the build problem for NetBSD (Note, that we currently do not support it, so it might already be broken again). (#389)
- Fixed the build on FreeBSD, and fixed the getsockopt, sendmsg, and recvmsg functions on that same OS. (#397)
[0.6.0] 2016-06-10
Added
- Added
gettid
in::nix::unistd
for linux and android. (#293) - Some mips support in
::nix::sched
and::nix::sys::syscall
. (#301) - Added
SIGNALFD_SIGINFO_SIZE
in::nix::sys::signalfd
. (#309) - Added new module
::nix::ucontext
with structUContext
. Currently for linux only. (#311) - Added
EPOLLEXCLUSIVE
toEpollEventKind
in::nix::sys::epoll
. (#330) - Added
pause
to::nix::unistd
. (#336) - Added
sleep
to::nix::unistd
. (#351) - Added
S_IFDIR
,S_IFLNK
,S_IFMT
toSFlag
in::nix::sys::stat
. (#359) - Added
clear
andextend
functions toSigSet
's implementation in::nix::sys::signal
. (#347) sockaddr_storage_to_addr
in::nix::sys::socket
now supportssockaddr_nl
on linux and android. (#366)- Added support for
SO_ORIGINAL_DST
in::nix::sys::socket
on linux. (#367) - Added
SIGINFO
in::nix::sys::signal
for the macos target as well asSIGPWR
andSIGSTKFLT
in::nix::sys::signal
for non-macos targets. (#361)
Changed
- Changed the structure
IoVec
in::nix::sys::uio
. (#304) - Replaced
CREATE_NEW_FD
bySIGNALFD_NEW
in::nix::sys::signalfd
. (#309) - Renamed
SaFlag
toSaFlags
andSigFlag
toSigFlags
in::nix::sys::signal
. (#314) - Renamed
Fork
toForkResult
and changed its fields in::nix::unistd
. (#332) - Added the
signal
parameter toclone
's signature in::nix::sched
. (#344) execv
,execve
, andexecvp
now returnResult<Void>
instead ofResult<()>
in::nix::unistd
. (#357)
Fixed
- Improved the conversion from
std::net::SocketAddr
toInetAddr
in::nix::sys::socket::addr
. (#335)