Skip to content

Latest commit

 

History

History
315 lines (293 loc) · 16.1 KB

CHANGELOG.md

File metadata and controls

315 lines (293 loc) · 16.1 KB

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

[Unreleased]

Added

  • Added sysconf, pathconf, and fpathconf (#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, and tcgetsid. (#527)

Changed

  • Changed ioctl!(write ...) to take argument by value instead as pointer. If you need a pointer as argument, use ioctl!(write buf ...). (#626)
  • Marked sys::mman::{ mmap, munmap, madvise, munlock, msync } as unsafe. (#559)
  • Minimum supported Rust version is now 1.13.
  • Removed revents argument from PollFd::new() as it's an output argument and will be overwritten regardless of value. (#542)
  • Changed type signature of sys::select::FdSet::contains to make self immutable (#564)
  • Introduced wrapper types for gid_t, pid_t, and uid_t as Gid, Pid, and Uid 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 from libc::statfs instead of own linux specific type nix::sys::Statfs. Also file system type constants like nix::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, and pwritev/preadv functionality is now included by default for all supported platforms. (#681)

Removed

  • Removed io::Error from nix::Error and the conversion from nix::Error to Errno (#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)

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), and Android (#631).
  • bind and errno_location now work correctly on Android (#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 entry cmsgs parameter. (#623)
  • Multiple constants related to the termios API have now been properly defined for all supported platforms. (#527)

[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 bitflags EpollCreateFlags in ::nix::sys::epoll in order to support ::libc::epoll_create1. (#410)
  • Added setresuid and setresgid for Linux in ::nix::unistd (#448)
  • Added getpgid in ::nix::unistd (#433)
  • Added tcgetpgrp and tcsetpgrp 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 and minor in ::nix::sys::stat for decomposing dev_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 use BaudRate enum from speed_t. (#518)
  • epoll_ctl now could accept None as argument event when op is EpollOp::EpollCtlDel. (#480)
  • Removed the bad keyword from the ioctl! macro (#478)
  • Changed TimeVal into an opaque Newtype (#475)
  • kill's signature, defined in ::nix::sys::signal, changed, so that the signal parameter has type T: Into<Option<Signal>>. None as an argument for that parameter will result in a 0 passed to libc's kill, while a Some-argument will result in the previous behavior for the contained Signal. (#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 the ev_set method. (#415) (#442) (#463)
  • pipe2 now calls libc::pipe2 where available. Previously it was emulated using pipe, which meant that setting O_CLOEXEC was not atomic. (#427)
  • Renamed EpollEventKind to EpollFlags 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 field events is now be read-only accessible with the new method events() of EpollEvent. Instances of EpollEvent can be constructed using the new method new() of EpollEvent. (#410)
  • SigFlags in ::nix::sys::signal has be renamed to SigmaskHow and its type has changed from bitflags to enum 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 and lseek64 in ::nix::unistd (#377)
  • Added mkdir and getcwd in ::nix::unistd (#416)
  • Added accessors sigmask_mut and sigmask to UContext in ::nix::ucontext. (#370)
  • Added WUNTRACED to WaitPidFlag in ::nix::sys::wait for non-linux targets. (#379)
  • Added new module ::nix::sys::reboot with enumeration RebootMode and functions reboot and set_cad_enabled. Currently for linux only. (#386)
  • FdSet in ::nix::sys::select now also implements Clone. (#405)
  • Added F_FULLFSYNC to FcntlArg in ::nix::fcntl for apple targets. (#407)
  • Added CpuSet::unset in ::nix::sched. (#402)
  • Added constructor method new() to PollFd in ::nix::poll, in order to allow creation of objects, after removing public access to members. (#399)
  • Added method revents() to PollFd in ::nix::poll, in order to provide read access to formerly public member revents. (#399)
  • Added MSG_CMSG_CLOEXEC to MsgFlags 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 to EfdFlags in ::nix::sys::eventfd. (#383)
  • Changed the result types of CpuSet::is_set and CpuSet::set in ::nix::sched to Result<bool> and Result<()>, respectively. They now return EINVAL, if an invalid argument for the field parameter is passed. (#402)
  • MqAttr in ::nix::mqueue is now an opaque proxy for ::libc::mq_attr, which has the same structure as the old MqAttr. The field mq_flags of ::libc::mq_attr is readable using the new method flags() of MqAttr. MqAttr also no longer implements Debug. (#392)
  • The parameter msq_prio of mq_receive with type u32 in ::nix::mqueue was replaced by a parameter named msg_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 alias libc::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 method revents(). (#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 struct UContext. Currently for linux only. (#311)
  • Added EPOLLEXCLUSIVE to EpollEventKind in ::nix::sys::epoll. (#330)
  • Added pause to ::nix::unistd. (#336)
  • Added sleep to ::nix::unistd. (#351)
  • Added S_IFDIR, S_IFLNK, S_IFMT to SFlag in ::nix::sys::stat. (#359)
  • Added clear and extend functions to SigSet's implementation in ::nix::sys::signal. (#347)
  • sockaddr_storage_to_addr in ::nix::sys::socket now supports sockaddr_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 as SIGPWR and SIGSTKFLT in ::nix::sys::signal for non-macos targets. (#361)

Changed

  • Changed the structure IoVec in ::nix::sys::uio. (#304)
  • Replaced CREATE_NEW_FD by SIGNALFD_NEW in ::nix::sys::signalfd. (#309)
  • Renamed SaFlag to SaFlags and SigFlag to SigFlags in ::nix::sys::signal. (#314)
  • Renamed Fork to ForkResult and changed its fields in ::nix::unistd. (#332)
  • Added the signal parameter to clone's signature in ::nix::sched. (#344)
  • execv, execve, and execvp now return Result<Void> instead of Result<()> in ::nix::unistd. (#357)

Fixed

  • Improved the conversion from std::net::SocketAddr to InetAddr in ::nix::sys::socket::addr. (#335)

[0.5.0] 2016-03-01