Skip to content
This repository was archived by the owner on Jan 9, 2020. It is now read-only.
This repository was archived by the owner on Jan 9, 2020. It is now read-only.

nix 0.9.0 #24

@aep

Description

@aep

compilation fails with the upcoming nix 0.9.0 (required for android)

error[E0432]: unresolved import `nix::c_int`
 --> src/signals.rs:2:5
  |
2 | use nix::c_int;
  |     ^^^^^^^^^^ no `c_int` in the root

error[E0432]: unresolved import `nix::poll::poll`
  --> src/main.rs:41:17
   |
41 | use nix::poll::{poll, PollFd, POLLIN, POLLHUP, POLLNVAL, EventFlags};
   |                 ^^^^ Could not find `poll` in `nix`

error[E0432]: unresolved import `nix::poll::PollFd`
  --> src/main.rs:41:23
   |
41 | use nix::poll::{poll, PollFd, POLLIN, POLLHUP, POLLNVAL, EventFlags};
   |                       ^^^^^^ Could not find `poll` in `nix`

error[E0432]: unresolved import `nix::poll::POLLIN`
  --> src/main.rs:41:31
   |
41 | use nix::poll::{poll, PollFd, POLLIN, POLLHUP, POLLNVAL, EventFlags};
   |                               ^^^^^^ Could not find `poll` in `nix`

error[E0432]: unresolved import `nix::poll::POLLHUP`
  --> src/main.rs:41:39
   |
41 | use nix::poll::{poll, PollFd, POLLIN, POLLHUP, POLLNVAL, EventFlags};
   |                                       ^^^^^^^ Could not find `poll` in `nix`

error[E0432]: unresolved import `nix::poll::POLLNVAL`
  --> src/main.rs:41:48
   |
41 | use nix::poll::{poll, PollFd, POLLIN, POLLHUP, POLLNVAL, EventFlags};
   |                                                ^^^^^^^^ Could not find `poll` in `nix`

error[E0432]: unresolved import `nix::poll::EventFlags`
  --> src/main.rs:41:58
   |
41 | use nix::poll::{poll, PollFd, POLLIN, POLLHUP, POLLNVAL, EventFlags};
   |                                                          ^^^^^^^^^^ Could not find `poll` in `nix`

error[E0425]: cannot find function `lsetxattr` in module `libc`
  --> src/nix_ext.rs:16:15
   |
16 |         libc::lsetxattr(
   |               ^^^^^^^^^ did you mean `tcsetattr`?
   |
help: possible candidate is found in another module, you can import it into scope
   | use nix_ext::lsetxattr;

error[E0425]: cannot find function `set_dumpable` in module `prctl`
   --> src/main.rs:906:28
    |
906 |     if let Err(e) = prctl::set_dumpable(false) {
    |                            ^^^^^^^^^^^^ not found in `prctl`

error[E0425]: cannot find function `set_child_subreaper` in module `prctl`
   --> src/main.rs:975:32
    |
975 |         if let Err(e) = prctl::set_child_subreaper(true) {
    |                                ^^^^^^^^^^^^^^^^^^^ not found in `prctl`

error[E0425]: cannot find function `set_no_new_privileges` in module `prctl`
    --> src/main.rs:1143:32
     |
1143 |         if let Err(e) = prctl::set_no_new_privileges(true) {
     |                                ^^^^^^^^^^^^^^^^^^^^^ not found in `prctl`

error[E0425]: cannot find function `set_keep_capabilities` in module `prctl`
    --> src/main.rs:1602:28
     |
1602 |     if let Err(e) = prctl::set_keep_capabilities(true) {
     |                            ^^^^^^^^^^^^^^^^^^^^^ not found in `prctl`

error[E0425]: cannot find function `set_keep_capabilities` in module `prctl`
    --> src/main.rs:1611:28
     |
1611 |     if let Err(e) = prctl::set_keep_capabilities(false) {
     |                            ^^^^^^^^^^^^^^^^^^^^^ not found in `prctl`

error[E0425]: cannot find function `set_name` in module `prctl`
    --> src/main.rs:1639:28
     |
1639 |     if let Err(e) = prctl::set_name(name) {
     |                            ^^^^^^^^ not found in `prctl`
     |
help: possible candidate is found in another module, you can import it into scope
     | use set_name;

error[E0599]: no method named `errno` found for type `nix::Error` in the current scope
   --> src/main.rs:637:22
    |
637 |                 if e.errno() != Errno::ENOENT {
    |                      ^^^^^

error[E0599]: no method named `errno` found for type `nix::Error` in the current scope
   --> src/main.rs:648:18
    |
648 |             if e.errno() != Errno::ENOENT {
    |                  ^^^^^

error[E0599]: no method named `errno` found for type `nix::Error` in the current scope
   --> src/main.rs:759:26
    |
759 |                     if n.errno() == Errno::ESRCH {
    |                          ^^^^^

error[E0308]: mismatched types
   --> src/main.rs:860:59
    |
860 |                     let (exit_code, sig) = wait_for_child(child)?;
    |                                                           ^^^^^ expected i32, found struct `nix::unistd::Pid`
    |
    = note: expected type `i32`
               found type `nix::unistd::Pid`

error[E0308]: mismatched types
   --> src/main.rs:885:49
    |
885 |             let (exit_code, _) = wait_for_child(child)?;
    |                                                 ^^^^^ expected i32, found struct `nix::unistd::Pid`
    |
    = note: expected type `i32`
               found type `nix::unistd::Pid`

error[E0308]: mismatched types
    --> src/main.rs:1250:45
     |
1250 |                 let (_, _) = wait_for_child(child)?;
     |                                             ^^^^^ expected i32, found struct `nix::unistd::Pid`
     |
     = note: expected type `i32`
                found type `nix::unistd::Pid`

error[E0599]: no method named `errno` found for type `nix::Error` in the current scope
    --> src/main.rs:1419:18
     |
1419 |             if e.errno() != Errno::ENOENT {
     |                  ^^^^^

error[E0277]: the trait bound `std::option::Option<nix::unistd::Pid>: std::convert::From<{integer}>` is not satisfied
    --> src/main.rs:1529:28
     |
1529 |         let result = match waitpid(-1, None) {
     |                            ^^^^^^^ the trait `std::convert::From<{integer}>` is not implemented for `std::option::Option<nix::unistd::Pid>`
     |
     = help: the following implementations were found:
               <std::option::Option<T> as std::convert::From<T>>
     = note: required because of the requirements on the impl of `std::convert::Into<std::option::Option<nix::unistd::Pid>>` for `{integer}`
     = note: required by `nix::sys::wait::waitpid`

error[E0599]: no method named `errno` found for type `nix::Error` in the current scope
    --> src/main.rs:1532:22
     |
1532 |                 if e.errno() == Errno::EINTR {
     |                      ^^^^^

error[E0308]: mismatched types
    --> src/main.rs:1542:42
     |
1542 |                 if child != -1 && pid != child {
     |                                          ^^^^^ expected struct `nix::unistd::Pid`, found i32
     |
     = note: expected type `nix::unistd::Pid`
                found type `i32`

error[E0308]: mismatched types
    --> src/main.rs:1549:42
     |
1549 |                 if child != -1 && pid != child {
     |                                          ^^^^^ expected struct `nix::unistd::Pid`, found i32
     |
     = note: expected type `nix::unistd::Pid`
                found type `i32`

error[E0308]: mismatched types
    --> src/main.rs:1579:41
     |
1579 |     let mut result = WaitStatus::Exited(0, 0);
     |                                         ^ expected struct `nix::unistd::Pid`, found integral variable
     |
     = note: expected type `nix::unistd::Pid`
                found type `{integer}`

error[E0277]: the trait bound `std::option::Option<nix::unistd::Pid>: std::convert::From<{integer}>` is not satisfied
    --> src/main.rs:1581:15
     |
1581 |         match waitpid(-1, Some(WNOHANG)) {
     |               ^^^^^^^ the trait `std::convert::From<{integer}>` is not implemented for `std::option::Option<nix::unistd::Pid>`
     |
     = help: the following implementations were found:
               <std::option::Option<T> as std::convert::From<T>>
     = note: required because of the requirements on the impl of `std::convert::Into<std::option::Option<nix::unistd::Pid>>` for `{integer}`
     = note: required by `nix::sys::wait::waitpid`

error[E0599]: no method named `errno` found for type `nix::Error` in the current scope
    --> src/main.rs:1583:22
     |
1583 |                 if e.errno() != Errno::ECHILD {
     |                      ^^^^^

error[E0308]: mismatched types
    --> src/main.rs:1605:15
     |
1605 |     setresgid(gid, gid, gid)?;
     |               ^^^ expected struct `nix::unistd::Gid`, found u32
     |
     = note: expected type `nix::unistd::Gid`
                found type `u32`

error[E0308]: mismatched types
    --> src/main.rs:1605:20
     |
1605 |     setresgid(gid, gid, gid)?;
     |                    ^^^ expected struct `nix::unistd::Gid`, found u32
     |
     = note: expected type `nix::unistd::Gid`
                found type `u32`

error[E0308]: mismatched types
    --> src/main.rs:1605:25
     |
1605 |     setresgid(gid, gid, gid)?;
     |                         ^^^ expected struct `nix::unistd::Gid`, found u32
     |
     = note: expected type `nix::unistd::Gid`
                found type `u32`

error[E0308]: mismatched types
    --> src/main.rs:1606:15
     |
1606 |     setresuid(uid, uid, uid)?;
     |               ^^^ expected struct `nix::unistd::Uid`, found u32
     |
     = note: expected type `nix::unistd::Uid`
                found type `u32`

error[E0308]: mismatched types
    --> src/main.rs:1606:20
     |
1606 |     setresuid(uid, uid, uid)?;
     |                    ^^^ expected struct `nix::unistd::Uid`, found u32
     |
     = note: expected type `nix::unistd::Uid`
                found type `u32`

error[E0308]: mismatched types
    --> src/main.rs:1606:25
     |
1606 |     setresuid(uid, uid, uid)?;
     |                         ^^^ expected struct `nix::unistd::Uid`, found u32
     |
     = note: expected type `nix::unistd::Uid`
                found type `u32`

error[E0599]: no method named `errno` found for type `nix::Error` in the current scope
   --> src/mounts.rs:343:14
    |
343 |         if e.errno() != Errno::EINVAL {
    |              ^^^^^

error[E0308]: mismatched types
   --> src/mounts.rs:443:34
    |
443 |         Mode::from_bits_truncate(dev.file_mode.unwrap_or(0)),
    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected u16, found u32

error[E0308]: mismatched types
   --> src/mounts.rs:444:9
    |
444 |         makedev(dev.major, dev.minor),
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected u32, found u64
    |
    = help: here are some functions which might fulfill your needs:
            - .count_ones()
            - .count_zeros()
            - .leading_zeros()
            - .trailing_zeros()

error[E0308]: mismatched types
   --> src/mounts.rs:446:27
    |
446 |     chown(&dev.path[1..], dev.uid, dev.gid)?;
    |                           ^^^^^^^ expected struct `nix::unistd::Uid`, found u32
    |
    = note: expected type `std::option::Option<nix::unistd::Uid>`
               found type `std::option::Option<u32>`
    = help: here are some functions which might fulfill your needs:
            - .take()
            - .unwrap()
            - .unwrap_or_default()

error[E0308]: mismatched types
   --> src/mounts.rs:446:36
    |
446 |     chown(&dev.path[1..], dev.uid, dev.gid)?;
    |                                    ^^^^^^^ expected struct `nix::unistd::Gid`, found u32
    |
    = note: expected type `std::option::Option<nix::unistd::Gid>`
               found type `std::option::Option<u32>`
    = help: here are some functions which might fulfill your needs:
            - .take()
            - .unwrap()
            - .unwrap_or_default()

error[E0599]: no method named `errno` found for type `nix::Error` in the current scope
   --> src/mounts.rs:482:14
    |
482 |         if e.errno() != Errno::ENOENT && e.errno() != Errno::ENOTDIR {
    |              ^^^^^

error[E0599]: no method named `errno` found for type `nix::Error` in the current scope
   --> src/mounts.rs:482:44
    |
482 |         if e.errno() != Errno::ENOENT && e.errno() != Errno::ENOTDIR {
    |                                            ^^^^^

error[E0599]: no method named `errno` found for type `nix::Error` in the current scope
   --> src/mounts.rs:505:14
    |
505 |         if e.errno() != Errno::ENOENT {
    |              ^^^^^

error[E0308]: mismatched types
  --> src/signals.rs:24:22
   |
24 |         let _ = kill(CHILD_PID, Signal::from_c_int(signo).unwrap());
   |                      ^^^^^^^^^ expected struct `nix::unistd::Pid`, found i32
   |
   = note: expected type `nix::unistd::Pid`
              found type `i32`

error[E0308]: mismatched types
  --> src/signals.rs:56:10
   |
56 |     kill(0, signal)?;
   |          ^ expected struct `nix::unistd::Pid`, found integral variable
   |
   = note: expected type `nix::unistd::Pid`
              found type `{integer}`

error[E0308]: mismatched types
   --> src/signals.rs:102:10
    |
102 |     kill(pid, signal)?;
    |          ^^^ expected struct `nix::unistd::Pid`, found i32
    |
    = note: expected type `nix::unistd::Pid`
               found type `i32`

error[E0308]: mismatched types
  --> src/nix_ext.rs:46:19
   |
46 |         rlim_cur: soft,
   |                   ^^^^ expected u32, found u64
   |
   = help: here are some functions which might fulfill your needs:
           - .count_ones()
           - .count_zeros()
           - .leading_zeros()
           - .trailing_zeros()

error[E0308]: mismatched types
  --> src/nix_ext.rs:47:19
   |
47 |         rlim_max: hard,
   |                   ^^^^ expected u32, found u64
   |
   = help: here are some functions which might fulfill your needs:
           - .count_ones()
           - .count_zeros()
           - .leading_zeros()
           - .trailing_zeros()


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