owenthewizard / i3lockr

Distort a screenshot and run i3lock
Other
23 stars 6 forks source link

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os #7

Closed Vintodrimmer closed 5 years ago

Vintodrimmer commented 5 years ago

Same issue as this one.

The error is as follows:

➜ env RUST_BACKTRACE=1 i3lockr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/libcore/result.rs:997:5
stack backtrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: <unknown>
  10: <unknown>
  11: <unknown>
  12: <unknown>
  13: __libc_start_main
             at ../csu/libc-start.c:308
  14: <unknown>

I'm not quite sure how to compile with debug mode.

owenthewizard commented 5 years ago

To build in debug mode, just run cargo build after cloning the repo. You can run it using cargo run. This is all assuming you have the rust toolchain installed with cargo and friends.

As for this:

  = note: /bin/ld: cannot find -lxcb-image
          /bin/ld: cannot find -lxcb
          /bin/ld: cannot find -lxcb
          /bin/ld: cannot find -lxcb
          /bin/ld: cannot find -lxcb
          /bin/ld: cannot find -lxcb-randr
          /bin/ld: cannot find -lxcb-render
          collect2: error: ld returned 1 exit status

Do you have libxcb installed, including the render and RandR extensions?

owenthewizard commented 5 years ago

Can you try again with v0.1.2? I reworked things and have a feeling it might have fixed this.

Vintodrimmer commented 5 years ago

I have them installed, but not the -devel packages. I will try building it in debug mode tomorrow. As for version 1.0.0, it still has the problem, albeit stated differently now:

➜ env RUST_BACKTRACE=1 i3lockr
i3lock: unrecognized option '--raw=4720x1920:bgrx'
i3lock: Syntax: i3lock [-v] [-n] [-b] [-d] [-c color] [-u] [-p win|default] [-i image.png] [-t] [-e] [-I timeout] [-f]
thread 'main' panicked at 'Failed to write image to i3lock stdin: Broken pipe (os error 32)', src/main.rs:80:29
stack backtrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: __libc_start_main
             at ../csu/libc-start.c:308
  10: <unknown>
owenthewizard commented 5 years ago

Test with version 0.1.2, not 1.0.0. Either way you need a more recent version of i3lock. You'll have to build it from GitHub because they haven't published a release yet.

And the packages need to be the -devel or -dev versions to compile.

Vintodrimmer commented 5 years ago

I have tried 0.1.2, but failed with the same error. Here's the output of the debug version:

➜ env RUST_BACKTRACE=1 cargo run
    Finished dev [optimized + debuginfo] target(s) in 0.05s
     Running `target/debug/i3lockr`
src/main.rs:173:5 Taking the screenshot took 12.23117ms
src/main.rs:188:5 Decoding the XImage took 72.662452ms
src/main.rs:115:9 Downscaling took 215.52021ms
src/main.rs:127:9 Darkening took 43.948351ms
src/main.rs:133:13 Blurring pass 1 took 638.673117ms
src/main.rs:139:9 Upscaling took 659.670009ms
src/main.rs:81:5 Resizing lock took 144.337799ms
src/main.rs:245:9 Drawing on CRTC-0 took 5.852402ms
src/main.rs:245:9 Drawing on CRTC-1 took 7.326166ms
src/main.rs:245:9 Drawing on CRTC-2 took 8.249312ms
src/main.rs:247:5 Total drawing time: 21.70978ms
src/main.rs:103:5 Calling i3lock with arguments: ["-i", "/dev/stdin", "--raw=4720x1920:rgbx"]
i3lock: unrecognized option '--raw=4720x1920:rgbx'
i3lock: Syntax: i3lock [-v] [-n] [-b] [-d] [-c color] [-u] [-p win|default] [-i image.png] [-t] [-e] [-I timeout] [-f]
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 32, kind: BrokenPipe, message: "Broken pipe" }', src/libcore/result.rs:997:5
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
   1: std::sys_common::backtrace::print
   2: std::panicking::default_hook::{{closure}}
   3: std::panicking::default_hook
   4: std::panicking::rust_panic_with_hook
   5: std::panicking::continue_panic_fmt
   6: rust_begin_unwind
   7: core::panicking::panic_fmt
   8: core::result::unwrap_failed
             at /builddir/rustc-1.35.0-src/src/libcore/macros.rs:18
   9: i3lockr::main
             at /builddir/rustc-1.35.0-src/src/libcore/result.rs:798
             at src/main.rs:105
  10: std::rt::lang_start::{{closure}}
             at /builddir/rustc-1.35.0-src/src/libstd/rt.rs:64
  11: std::panicking::try::do_call
  12: __rust_maybe_catch_panic
  13: std::rt::lang_start_internal
  14: main
  15: __libc_start_main
             at ../csu/libc-start.c:308
  16: _start
             at ../sysdeps/x86_64/start.S:120

Guess I'll have to wait for the new version of i3lock. Compiling that one from git too is a bit too involved for me.

sinetoami commented 5 years ago

I have the same problem. In both versions v0.1.2 and v1.0.0. I'm trying to build on Arch Linux. i3lock version:

i3lock: version 2.12.c-non-git

Any solution? Thanks!

JohnAZoidberg commented 5 years ago

If you see i3lock: unrecognized option '--raw=4720x1920:rgbx', you don't have a recent enough i3status build. It was merged only a few days ago i3/i3lock#234 and they haven't made a release yet. So you'll have to build it from the latest git revision.

owenthewizard commented 5 years ago

v1.0.0 is very heavily experimental, honestly I shouldn't have made a release. If you want to try out the new features I suggest pulling from the v2 branch. If you can't get a recent enough version of i3lock you'll have to revert to 0.1.1.

owenthewizard commented 5 years ago

@sinetoami on Arch i3lock-git should be recent enough.

sinetoami commented 5 years ago

@owenthewizard Solve to me with i3lock-git package as you said. Thanks!

owenthewizard commented 5 years ago

I'm fairly certain this an old bug from the master branch. I'll be merging v2 into master shortly, if anyone still experiences this bug with the new master (current v2) please open a new issue.