jD91mZM2/xidlehook

E0277 and E0308 when running `cargo install xidlehook --bins` in Ubuntu 20.04

Closed this issue · 5 comments

I tried installing with cargo install xidlehook --bins and got the following errors:

Never used rust before so I'm not sure what I can do to fix it.
I'm using Ubuntu 20.04 and rustc/cargo 1.41.0.

$cargo install xidlehook --bins
   Updating crates.io index
   Installing xidlehook v0.8.2
   Compiling proc-macro2 v1.0.17
   Compiling unicode-xid v0.2.0
   Compiling syn v1.0.29
   Compiling libc v0.2.71
   Compiling cfg-if v0.1.10
   Compiling autocfg v1.0.0
   Compiling lazy_static v1.4.0
   Compiling memchr v2.3.3
   Compiling maybe-uninit v2.0.0
   Compiling version_check v0.9.2
   Compiling bitflags v1.2.1
   Compiling pkg-config v0.3.17
   Compiling proc-macro-nested v0.1.4
   Compiling futures-core v0.3.5
   Compiling once_cell v1.4.0
   Compiling futures-sink v0.3.5
   Compiling proc-macro-hack v0.5.16
   Compiling futures-io v0.3.5
   Compiling log v0.4.8
   Compiling slab v0.4.2
   Compiling pin-utils v0.1.0
   Compiling scopeguard v1.1.0
   Compiling void v1.0.2
   Compiling nix v0.17.0
   Compiling unicode-width v0.1.7
   Compiling unicode-segmentation v1.6.0
   Compiling ansi_term v0.11.0
   Compiling strsim v0.8.0
   Compiling serde v1.0.111
   Compiling async-task v3.0.0
   Compiling nix v0.15.0
   Compiling vec_map v0.8.2
   Compiling ryu v1.0.4
   Compiling scoped-tls-hkt v0.1.2
   Compiling regex-syntax v0.6.18
   Compiling quick-error v1.2.3
   Compiling pin-project-lite v0.1.5
   Compiling itoa v0.4.5
   Compiling termcolor v1.1.0
   Compiling thread_local v1.0.1
   Compiling futures-channel v0.3.5
   Compiling futures-task v0.3.5
   Compiling textwrap v0.11.0
   Compiling heck v0.3.1
   Compiling crossbeam-utils v0.7.2
   Compiling memoffset v0.5.4
   Compiling crossbeam-epoch v0.8.2
   Compiling proc-macro-error-attr v1.0.2
   Compiling proc-macro-error v1.0.2
   Compiling humantime v1.3.0
   Compiling x11 v2.18.2
   Compiling libpulse-sys v1.13.0
   Compiling aho-corasick v0.7.10
   Compiling quote v1.0.6
   Compiling kv-log-macro v1.0.6
   Compiling crossbeam-queue v0.2.2
   Compiling crossbeam-channel v0.4.2
   Compiling regex v1.3.9
   Compiling atty v0.2.14
   Compiling socket2 v0.3.12
   Compiling num_cpus v1.13.0
   Compiling crossbeam-deque v0.7.3
   Compiling clap v2.33.1
   Compiling xcb v0.9.0
   Compiling libpulse-binding v2.15.1
   Compiling env_logger v0.7.1
   Compiling syn-mid v0.5.0
   Compiling crossbeam v0.7.3
   Compiling pin-project-internal v0.4.17
   Compiling futures-macro v0.3.5
   Compiling serde_derive v1.0.111
   Compiling structopt-derive v0.4.7
   Compiling pin-project v0.4.17
   Compiling futures-util v0.3.5
   Compiling piper v0.1.2
   Compiling futures-executor v0.3.5
   Compiling futures v0.3.5
   Compiling smol v0.1.10
   Compiling async-std v1.6.0
   Compiling structopt v0.3.14
   Compiling serde_json v1.0.53
   Compiling xidlehook-core v0.1.1
   Compiling xidlehook v0.8.2
error[E0308]: mismatched types
   --> /home/alvaro/.cargo/registry/src/github.com-1ecc6299db9ec823/xidlehook-0.8.2/src/main.rs:176:38
    |
176 |                     Selected::Socket(rx.recv().await)
    |                                      ^^^^^^^^^^^^^^^ expected enum `std::option::Option`, found enum `std::result::Result`
    |
    = note: expected enum `std::option::Option<(socket::models::Message, async_std::sync::channel::Sender<socket::models::Reply>)>`
               found enum `std::result::Result<(socket::models::Message, async_std::sync::channel::Sender<socket::models::Reply>), async_std::sync::channel::RecvError>`

error[E0308]: mismatched types
   --> /home/alvaro/.cargo/registry/src/github.com-1ecc6299db9ec823/xidlehook-0.8.2/src/main.rs:183:38
    |
183 |                     Selected::Signal(rx.recv().await)
    |                                      ^^^^^^^^^^^^^^^ expected enum `std::option::Option`, found enum `std::result::Result`
    |
    = note: expected enum `std::option::Option<nix::sys::signal::Signal>`
               found enum `std::result::Result<nix::sys::signal::Signal, async_std::sync::channel::RecvError>`

error[E0277]: the trait bound `async_std::sync::channel::RecvError: socket::models::_IMPL_SERIALIZE_FOR_Filter::_serde::Serialize` is not satisfied
    --> /home/alvaro/.cargo/registry/src/github.com-1ecc6299db9ec823/xidlehook-0.8.2/src/socket/mod.rs:51:50
     |
51   |                     let msg = serde_json::to_vec(&reply)?;
     |                                                  ^^^^^^ the trait `socket::models::_IMPL_SERIALIZE_FOR_Filter::_serde::Serialize` is not implemented for `async_std::sync::channel::RecvError`
     | 
    ::: /home/alvaro/.cargo/registry/src/github.com-1ecc6299db9ec823/serde_json-1.0.53/src/ser.rs:2192:17
     |
2192 |     T: ?Sized + Serialize,
     |                 --------- required by this bound in `serde_json::ser::to_vec`
     |
     = note: required because of the requirements on the impl of `socket::models::_IMPL_SERIALIZE_FOR_Filter::_serde::Serialize` for `std::result::Result<socket::models::Reply, async_std::sync::channel::RecvError>`

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.
error: could not compile `xidlehook`.
warning: build failed, waiting for other jobs to finish...
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.0.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.1.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.10.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.11.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.12.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.13.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.14.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.15.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.2.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.3.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.4.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.5.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.6.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.7.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.8.rcgu.o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.xidlehook_client.7q50wob7-cgu.9.rcgu.o" "-o" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd" "/tmp/cargo-installpnLfd6/release/deps/xidlehook_client-09b1d6910459e4fd.2gt8xbvpez06l2iw.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/tmp/cargo-installpnLfd6/release/deps" "-L" "/usr/lib/x86_64-linux-gnu" "-L" "/usr/lib/x86_64-linux-gnu" "-L" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/tmp/cargo-installpnLfd6/release/deps/libserde_json-6c24612c0e5741a4.rlib" "/tmp/cargo-installpnLfd6/release/deps/libryu-07b5a98b1ef9ec69.rlib" "/tmp/cargo-installpnLfd6/release/deps/libitoa-a5091f506702cc74.rlib" "/tmp/cargo-installpnLfd6/release/deps/libxidlehook_core-e4e5ab58d30897bd.rlib" "/tmp/cargo-installpnLfd6/release/deps/libasync_std-d3f82ae4c7da99a3.rlib" "/tmp/cargo-installpnLfd6/release/deps/libnum_cpus-1a872d651d4ffb24.rlib" "/tmp/cargo-installpnLfd6/release/deps/libsmol-e884cbbe6dd5be20.rlib" "/tmp/cargo-installpnLfd6/release/deps/libpiper-8223689f495a1636.rlib" "/tmp/cargo-installpnLfd6/release/deps/libasync_task-450c3325335236ad.rlib" "/tmp/cargo-installpnLfd6/release/deps/libscoped_tls_hkt-409c066cd426d689.rlib" "/tmp/cargo-installpnLfd6/release/deps/libnix-f1a87ee2daf1b277.rlib" "/tmp/cargo-installpnLfd6/release/deps/libcrossbeam-90415356b5086f41.rlib" "/tmp/cargo-installpnLfd6/release/deps/libcrossbeam_queue-eed537a83f1bdd01.rlib" "/tmp/cargo-installpnLfd6/release/deps/libcrossbeam_channel-72cfad60b7a6470c.rlib" "/tmp/cargo-installpnLfd6/release/deps/libcrossbeam_deque-5e849693a7c0b575.rlib" "/tmp/cargo-installpnLfd6/release/deps/libcrossbeam_epoch-5665f9a7588e9202.rlib" "/tmp/cargo-installpnLfd6/release/deps/libscopeguard-a78dda392bcde0b7.rlib" "/tmp/cargo-installpnLfd6/release/deps/libmemoffset-0afd2af5b914845b.rlib" "/tmp/cargo-installpnLfd6/release/deps/libmaybe_uninit-a298d468830200ff.rlib" "/tmp/cargo-installpnLfd6/release/deps/libsocket2-e706f118199c0588.rlib" "/tmp/cargo-installpnLfd6/release/deps/libfutures_util-265bee3d36af47e0.rlib" "/tmp/cargo-installpnLfd6/release/deps/libmemchr-395072760cf604fc.rlib" "/tmp/cargo-installpnLfd6/release/deps/libproc_macro_nested-33fd81c15436bdd0.rlib" "/tmp/cargo-installpnLfd6/release/deps/libfutures_channel-dc9ef617419bce36.rlib" "/tmp/cargo-installpnLfd6/release/deps/libpin_project-266569cffa669334.rlib" "/tmp/cargo-installpnLfd6/release/deps/libfutures_sink-245788bfc749042e.rlib" "/tmp/cargo-installpnLfd6/release/deps/libfutures_task-a4b4f001f231640c.rlib" "/tmp/cargo-installpnLfd6/release/deps/libonce_cell-3c0cedeff7768496.rlib" "/tmp/cargo-installpnLfd6/release/deps/libfutures_io-4e23c48023168bc0.rlib" "/tmp/cargo-installpnLfd6/release/deps/libslab-6389f6f597906dde.rlib" "/tmp/cargo-installpnLfd6/release/deps/libcrossbeam_utils-6dad68db553af84a.rlib" "/tmp/cargo-installpnLfd6/release/deps/libpin_project_lite-3542274f28f1566b.rlib" "/tmp/cargo-installpnLfd6/release/deps/libpin_utils-673b9f5031f880f1.rlib" "/tmp/cargo-installpnLfd6/release/deps/libfutures_core-292402a09442b91f.rlib" "/tmp/cargo-installpnLfd6/release/deps/libkv_log_macro-07a49755c22a497d.rlib" "/tmp/cargo-installpnLfd6/release/deps/libxcb-d6e0a0d4fb7f87d6.rlib" "/tmp/cargo-installpnLfd6/release/deps/liblibpulse_binding-b3904562fcbdd4cb.rlib" "/tmp/cargo-installpnLfd6/release/deps/liblibpulse_sys-a3aaf540ceacebfe.rlib" "/tmp/cargo-installpnLfd6/release/deps/libnix-bd35dae1e4790ef5.rlib" "/tmp/cargo-installpnLfd6/release/deps/libvoid-5ade95c7d252980f.rlib" "/tmp/cargo-installpnLfd6/release/deps/liblog-ad05045bd7a8b7a9.rlib" "/tmp/cargo-installpnLfd6/release/deps/libcfg_if-e1575648ad89a9c7.rlib" "/tmp/cargo-installpnLfd6/release/deps/libserde-81af1259103519c4.rlib" "/tmp/cargo-installpnLfd6/release/deps/libstructopt-df533ec095fe9c91.rlib" "/tmp/cargo-installpnLfd6/release/deps/liblazy_static-02374f77bb60ebb4.rlib" "/tmp/cargo-installpnLfd6/release/deps/libclap-5a36a5f1c2299438.rlib" "/tmp/cargo-installpnLfd6/release/deps/libvec_map-371e67f55c2b4526.rlib" "/tmp/cargo-installpnLfd6/release/deps/libtextwrap-483cd3fc0749e1ce.rlib" "/tmp/cargo-installpnLfd6/release/deps/libunicode_width-5ae8b6a551e0bbff.rlib" "/tmp/cargo-installpnLfd6/release/deps/libstrsim-74b13a71a08276e3.rlib" "/tmp/cargo-installpnLfd6/release/deps/libbitflags-057397ee22229dcb.rlib" "/tmp/cargo-installpnLfd6/release/deps/libatty-5b7ef2d26858e314.rlib" "/tmp/cargo-installpnLfd6/release/deps/liblibc-e097828ec91a023e.rlib" "/tmp/cargo-installpnLfd6/release/deps/libansi_term-78927abfb83cf2e7.rlib" "-Wl,--start-group" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-cd1d26a40296c383.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-946c46e8db143ba7.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-3c021fcab48e099a.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-a13ea224b282b67c.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-5291238e126d473c.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-96cf2ffe5c4a068e.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-50615dde840f6f7e.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-5ca1a4c2cb5e4ca3.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-f62c22d6d8e50f70.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-e62c19949099b19e.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-115bdc63c6be79cf.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-19b60dda762cb253.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-310a55b5e5f0453f.rlib" "-Wl,--end-group" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-542e54ad8a770d5e.rlib" "-Wl,-Bdynamic" "-lxcb" "-lxcb" "-lxcb" "-lxcb" "-lxcb-screensaver" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lutil" "-ldl" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: /usr/bin/ld: cannot find -lxcb-screensaver
          collect2: error: ld returned 1 exit status
          

error: aborting due to previous error

error: failed to compile `xidlehook v0.8.2`, intermediate artifacts can be found at `/tmp/cargo-installpnLfd6`

Caused by:
  could not compile `xidlehook`.

Please let me know if there's any additional information that would be useful and I'll update the issue.

I was able to build top-of-tree after installing libxcb-screensaver0-dev. The cargo install still didn't work though

I just tried building this on ubuntu 20.04 for the first time today and get the exact same errors.

I have installed the following apt packages:
- libxcb1
- libxcb1-dev
- libxss1
- libxss-dev
- libxcb-screensaver0
- libxcb-screensaver0-dev

I installed the nix package manager and tried following the directions to install that way, but it doesn't seem to work at all. Opening a separate issue for that.

I have zero clue why this happens, but I made another release mainly in hope for this to get solved magically

I confirmed that it installs properly now. Thanks!