Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix the build with bitflags-1.3.0 and newer #1492

Merged
merged 4 commits into from Aug 14, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
25 changes: 11 additions & 14 deletions .cirrus.yml
Expand Up @@ -15,7 +15,7 @@ task:
image: freebsd-11-4-release-amd64
setup_script:
- fetch https://sh.rustup.rs -o rustup.sh
- sh rustup.sh -y --profile=minimal --default-toolchain 1.41.0
- sh rustup.sh -y --profile=minimal --default-toolchain 1.46.0
- $HOME/.cargo/bin/rustup target add i686-unknown-freebsd
amd64_test_script:
- . $HOME/.cargo/env
Expand All @@ -31,22 +31,19 @@ task:
- name: OSX x86_64
env:
TARGET: x86_64-apple-darwin
- name: OSX i686
- name: iOS aarch64
env:
TARGET: i686-apple-darwin
TARGET: aarch64-apple-ios
DISABLE_TESTS: 1
- name: iOS
- name: iOS x86_64
env:
# To save VM startup time, test all iOS targets in a single task.
# The startup and scheduling time was very significant for Travis, but
# not known for Cirrus.
TARGET: "aarch64-apple-ios;armv7-apple-ios;armv7s-apple-ios;i386-apple-ios;x86_64-apple-ios"
TARGET: x86_64-apple-ios
DISABLE_TESTS: 1
osx_instance:
image: catalina-xcode
setup_script:
- curl --proto '=https' --tlsv1.2 -sSf -o rustup.sh https://sh.rustup.rs
- sh rustup.sh -y --profile=minimal --default-toolchain 1.41.0
- sh rustup.sh -y --profile=minimal --default-toolchain 1.46.0
- . $HOME/.cargo/env
- bash ci/install.sh
script:
Expand Down Expand Up @@ -101,7 +98,7 @@ task:
setup_script:
- mkdir /tmp/home
- curl --proto '=https' --tlsv1.2 -sSf -o rustup.sh https://sh.rustup.rs
- sh rustup.sh -y --profile=minimal --default-toolchain 1.41.0
- sh rustup.sh -y --profile=minimal --default-toolchain 1.46.0
- . $HOME/.cargo/env
- bash ci/install.sh
script:
Expand All @@ -119,13 +116,13 @@ task:
- name: Linux x86_64
env:
TARGET: x86_64-unknown-linux-gnu
TOOLCHAIN: 1.41.0
TOOLCHAIN: 1.46.0
- name: Linux x86_64 musl
env:
TARGET: x86_64-unknown-linux-musl
TOOLCHAIN: 1.41.0
TOOLCHAIN: 1.46.0
container:
image: rust:1.41
image: rust:1.46
setup_script:
- rustup toolchain install $TOOLCHAIN
- rustup target add --toolchain $TOOLCHAIN $TARGET
Expand Down Expand Up @@ -173,7 +170,7 @@ task:
env:
TARGET: x86_64-fuchsia
container:
image: rust:1.41
image: rust:1.46
setup_script:
- rustup target add $TARGET
script:
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Expand Up @@ -44,12 +44,16 @@ This project adheres to [Semantic Versioning](https://semver.org/).

- Many more functions, mostly contructors, are now `const`.
(#[1476](https://github.com/nix-rust/nix/pull/1476))
(#[1492](https://github.com/nix-rust/nix/pull/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](https://github.com/nix-rust/nix/pull/1484))

- Minimum supported Rust version is now 1.46.0.
([#1492](https://github.com/nix-rust/nix/pull/1492))

### Fixed

- Added more errno definitions for better backwards compatibility with
Expand All @@ -68,6 +72,10 @@ This project adheres to [Semantic Versioning](https://semver.org/).
for all platforms.
(#[1484](https://github.com/nix-rust/nix/pull/1484))

- Removed support for 32-bit Apple targets, since they've been dropped by both
Rustc and Xcode.
(#[1492](https://github.com/nix-rust/nix/pull/1492))

## [0.22.0] - 9 July 2021
### Added
- Added `if_nameindex` (#[1445](https://github.com/nix-rust/nix/pull/1445))
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Expand Up @@ -26,7 +26,7 @@ targets = [

[dependencies]
libc = { git = "https://github.com/rust-lang/libc", rev = "f5e31f208", features = [ "extra_traits" ] }
bitflags = "1.1"
bitflags = "1.3.1"
cfg-if = "1.0"

[target.'cfg(not(target_os = "redox"))'.dependencies]
Expand Down
6 changes: 1 addition & 5 deletions README.md
Expand Up @@ -68,11 +68,7 @@ Tier 2:
* aarch64-linux-android
* arm-linux-androideabi
* arm-unknown-linux-musleabi
* armv7-apple-ios
* armv7-linux-androideabi
* armv7s-apple-ios
* i386-apple-ios
* i686-apple-darwin
* i686-linux-android
* powerpc-unknown-linux-gnu
* s390x-unknown-linux-gnu
Expand All @@ -87,7 +83,7 @@ Tier 3:

## Usage

`nix` requires Rust 1.41.0 or newer.
`nix` requires Rust 1.46.0 or newer.

To use `nix`, add this to your `Cargo.toml`:

Expand Down
18 changes: 9 additions & 9 deletions src/errno.rs
Expand Up @@ -93,7 +93,7 @@ impl Errno {
desc(self)
}

pub fn from_i32(err: i32) -> Errno {
pub const fn from_i32(err: i32) -> Errno {
from_i32(err)
}

Expand Down Expand Up @@ -928,7 +928,7 @@ mod consts {
pub const ENOTSUP: Errno = Errno::EOPNOTSUPP;
}

pub fn from_i32(e: i32) -> Errno {
pub const fn from_i32(e: i32) -> Errno {
use self::Errno::*;

match e {
Expand Down Expand Up @@ -1207,7 +1207,7 @@ mod consts {
pub const EDEADLOCK: Errno = Errno::EDEADLK;
}

pub fn from_i32(e: i32) -> Errno {
pub const fn from_i32(e: i32) -> Errno {
use self::Errno::*;

match e {
Expand Down Expand Up @@ -1455,7 +1455,7 @@ mod consts {
pub const EOPNOTSUPP: Errno = Errno::ENOTSUP;
}

pub fn from_i32(e: i32) -> Errno {
pub const fn from_i32(e: i32) -> Errno {
use self::Errno::*;

match e {
Expand Down Expand Up @@ -1692,7 +1692,7 @@ mod consts {
pub const EOPNOTSUPP: Errno = Errno::ENOTSUP;
}

pub fn from_i32(e: i32) -> Errno {
pub const fn from_i32(e: i32) -> Errno {
use self::Errno::*;

match e {
Expand Down Expand Up @@ -1916,7 +1916,7 @@ mod consts {
pub const EWOULDBLOCK: Errno = Errno::EAGAIN;
}

pub fn from_i32(e: i32) -> Errno {
pub const fn from_i32(e: i32) -> Errno {
use self::Errno::*;

match e {
Expand Down Expand Up @@ -2141,7 +2141,7 @@ mod consts {
pub const EWOULDBLOCK: Errno = Errno::EAGAIN;
}

pub fn from_i32(e: i32) -> Errno {
pub const fn from_i32(e: i32) -> Errno {
use self::Errno::*;

match e {
Expand Down Expand Up @@ -2350,7 +2350,7 @@ mod consts {
pub const EWOULDBLOCK: Errno = Errno::EAGAIN;
}

pub fn from_i32(e: i32) -> Errno {
pub const fn from_i32(e: i32) -> Errno {
use self::Errno::*;

match e {
Expand Down Expand Up @@ -2590,7 +2590,7 @@ mod consts {
pub const EWOULDBLOCK: Errno = Errno::EAGAIN;
}

pub fn from_i32(e: i32) -> Errno {
pub const fn from_i32(e: i32) -> Errno {
use self::Errno::*;

match e {
Expand Down
2 changes: 1 addition & 1 deletion src/macros.rs
Expand Up @@ -113,9 +113,9 @@ macro_rules! libc_enum {
$v enum $BitFlags {
$($entries)*
}
#[allow(unused_doc_comment)]
impl ::std::convert::TryFrom<$repr> for $BitFlags {
type Error = $crate::Error;
#[allow(unused_doc_comments)]
fn try_from(x: $repr) -> $crate::Result<Self> {
match x {
$($try_froms)*
Expand Down
2 changes: 1 addition & 1 deletion src/sys/signal.rs
Expand Up @@ -133,7 +133,7 @@ impl Signal {
/// This function is equivalent to `<Signal as AsRef<str>>::as_ref()`,
/// with difference that returned string is `'static`
/// and not bound to `self`'s lifetime.
pub fn as_str(self) -> &'static str {
pub const fn as_str(self) -> &'static str {
match self {
Signal::SIGHUP => "SIGHUP",
Signal::SIGINT => "SIGINT",
Expand Down
8 changes: 4 additions & 4 deletions src/sys/socket/addr.rs
Expand Up @@ -237,7 +237,7 @@ impl AddressFamily {
///
/// Currently only supports these address families: Unix, Inet (v4 & v6), Netlink, Link/Packet
/// and System. Returns None for unsupported or unknown address families.
pub fn from_i32(family: i32) -> Option<AddressFamily> {
pub const fn from_i32(family: i32) -> Option<AddressFamily> {
match family {
libc::AF_UNIX => Some(AddressFamily::Unix),
libc::AF_INET => Some(AddressFamily::Inet),
Expand Down Expand Up @@ -314,15 +314,15 @@ impl InetAddr {
}
}
/// Gets the IP address associated with this socket address.
pub fn ip(&self) -> IpAddr {
pub const fn ip(&self) -> IpAddr {
match *self {
InetAddr::V4(ref sa) => IpAddr::V4(Ipv4Addr(sa.sin_addr)),
InetAddr::V6(ref sa) => IpAddr::V6(Ipv6Addr(sa.sin6_addr)),
}
}

/// Gets the port number associated with this socket address
pub fn port(&self) -> u16 {
pub const fn port(&self) -> u16 {
match *self {
InetAddr::V6(ref sa) => u16::from_be(sa.sin6_port),
InetAddr::V4(ref sa) => u16::from_be(sa.sin_port),
Expand Down Expand Up @@ -393,7 +393,7 @@ impl IpAddr {
}
}

pub fn to_std(&self) -> net::IpAddr {
pub const fn to_std(&self) -> net::IpAddr {
match *self {
IpAddr::V4(ref ip) => net::IpAddr::V4(ip.to_std()),
IpAddr::V6(ref ip) => net::IpAddr::V6(ip.to_std()),
Expand Down