Skip to content

0.22.0 includes breaking changes #1466

Closed
@sporksmith

Description

@sporksmith

Mostly FYI; fwiw I'm happy with the API change and it wasn't a big deal to fix in our code, but if I understand semver correctly this should be a major version number bump? (I know nobody wants to go from 0 to 1 ;))

Here's our broken build after bumping from 0.21.0 to 0.22.0: https://github.com/shadow/shadow/pull/1508/checks?check_run_id=3057359519

And our fixes: shadow/shadow#1512

error[E0425]: cannot find value `EWOULDBLOCK` in module `nix::errno`
  --> host/descriptor/pipe.rs:82:29
   |
82 |             Err(nix::errno::EWOULDBLOCK.into())
   |                             ^^^^^^^^^^^ not found in `nix::errno`
   |
help: consider importing this constant
   |
1  | use libc::EWOULDBLOCK;
   |

error[E0425]: cannot find value `EWOULDBLOCK` in module `nix::errno`
   --> host/descriptor/pipe.rs:115:29
    |
115 |             Err(nix::errno::EWOULDBLOCK.into())
    |                             ^^^^^^^^^^^ not found in `nix::errno`
    |
help: consider importing this constant
    |
1   | use libc::EWOULDBLOCK;
    |

error[E0425]: cannot find value `EWOULDBLOCK` in module `nix::errno`
   --> host/syscall/unistd.rs:150:34
    |
150 |     if result == Err(nix::errno::EWOULDBLOCK.into()) && !file_flags.contains(FileFlags::NONBLOCK) {
    |                                  ^^^^^^^^^^^ not found in `nix::errno`
    |
help: consider importing this constant
    |
1   | use libc::EWOULDBLOCK;
    |

error[E0425]: cannot find value `EWOULDBLOCK` in module `nix::errno`
   --> host/syscall/unistd.rs:219:34
    |
219 |     if result == Err(nix::errno::EWOULDBLOCK.into()) && !file_flags.contains(FileFlags::NONBLOCK) {
    |                                  ^^^^^^^^^^^ not found in `nix::errno`
    |
help: consider importing this constant
    |
1   | use libc::EWOULDBLOCK;
    |

error[E0425]: cannot find value `ENOTSUP` in module `nix::errno`
   --> host/syscall_types.rs:324:39
    |
324 |             let default = nix::errno::ENOTSUP;
    |                                       ^^^^^^^ not found in `nix::errno`
    |
help: consider importing this constant
    |
1   | use libc::ENOTSUP;
    |

error[E0425]: cannot find value `ENOTSUP` in module `nix::errno`
   --> host/syscall_types.rs:343:43
    |
343 |                 let default = nix::errno::ENOTSUP;
    |                                           ^^^^^^^ not found in `nix::errno`
    |
help: consider importing this constant
    |
1   | use libc::ENOTSUP;
    |

error[E0425]: cannot find value `EWOULDBLOCK` in module `nix::errno`
  --> host/descriptor/pipe.rs:82:29
   |
82 |             Err(nix::errno::EWOULDBLOCK.into())
   |                             ^^^^^^^^^^^ not found in `nix::errno`
   |
help: consider importing this constant
   |
1  | use libc::EWOULDBLOCK;
   |

error[E0425]: cannot find value `EWOULDBLOCK` in module `nix::errno`
   --> host/descriptor/pipe.rs:115:29
    |
115 |             Err(nix::errno::EWOULDBLOCK.into())
    |                             ^^^^^^^^^^^ not found in `nix::errno`
    |
help: consider importing this constant
    |
1   | use libc::EWOULDBLOCK;
    |

error[E0425]: cannot find value `EWOULDBLOCK` in module `nix::errno`
   --> host/syscall/unistd.rs:150:34
    |
150 |     if result == Err(nix::errno::EWOULDBLOCK.into()) && !file_flags.contains(FileFlags::NONBLOCK) {
    |                                  ^^^^^^^^^^^ not found in `nix::errno`
    |
help: consider importing this constant
    |
1   | use libc::EWOULDBLOCK;
    |

error[E0425]: cannot find value `EWOULDBLOCK` in module `nix::errno`
   --> host/syscall/unistd.rs:219:34
    |
219 |     if result == Err(nix::errno::EWOULDBLOCK.into()) && !file_flags.contains(FileFlags::NONBLOCK) {
    |                                  ^^^^^^^^^^^ not found in `nix::errno`
    |
help: consider importing this constant
    |
1   | use libc::EWOULDBLOCK;
    |

error[E0425]: cannot find value `ENOTSUP` in module `nix::errno`
   --> host/syscall_types.rs:324:39
    |
324 |             let default = nix::errno::ENOTSUP;
    |                                       ^^^^^^^ not found in `nix::errno`
    |
help: consider importing this constant
    |
1   | use libc::ENOTSUP;
    |

error[E0425]: cannot find value `ENOTSUP` in module `nix::errno`
   --> host/syscall_types.rs:343:43
    |
343 |                 let default = nix::errno::ENOTSUP;
    |                                           ^^^^^^^ not found in `nix::errno`
    |
help: consider importing this constant
    |
1   | use libc::ENOTSUP;
    |

error[E0119]: conflicting implementations of trait `std::convert::From<nix::errno::Errno>` for type `host::syscall_types::SyscallError`
   --> host/syscall_types.rs:332:1
    |
320 | impl From<nix::Error> for SyscallError {
    | -------------------------------------- first implementation here
...
332 | impl From<nix::errno::Errno> for SyscallError {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `host::syscall_types::SyscallError`

error: aborting due to 7 previous errors

Some errors have detailed explanations: E0119, E0425.
For more information about an error, try `rustc --explain E0119`.
error: could not compile `shadow-rs`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error[E0119]: conflicting implementations of trait `std::convert::From<nix::errno::Errno>` for type `host::syscall_types::SyscallError`
   --> host/syscall_types.rs:332:1
    |
320 | impl From<nix::Error> for SyscallError {
    | -------------------------------------- first implementation here
...
332 | impl From<nix::errno::Errno> for SyscallError {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `host::syscall_types::SyscallError`

error: aborting due to 7 previous errors

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions