Kintaro / wtftw

Window Tiling For The Win. A tiling window manager written in Rust
BSD 3-Clause "New" or "Revised" License
2.38k stars 84 forks source link

Fails to build on macOS (Big Surr) #193

Closed devanlooches closed 3 years ago

devanlooches commented 3 years ago

Hello, I git cloned and then tried to cargo build inside of the directory. The build failed and I got the following output.

Caused by:
  process didn't exit successfully: `/Users/devan/git_cloned_stuff/wtftw/target/release/build/x11-46390025223eeabb/build-script-build` (exit code: 101)
  --- stdout
  cargo:rerun-if-env-changed=X11_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=X11_STATIC
  cargo:rerun-if-env-changed=X11_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR

  --- stderr
  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Failure { command: "\"pkg-config\" \"--libs\" \"--cflags\" \"x11\" \"x11 >= 1.4.99.1\"", output: Output { status: ExitStatus(ExitStatus(256)), stdout: "", stderr: "Package xproto was not found in the pkg-config search path.\nPerhaps you should add the directory containing `xproto.pc\'\nto the PKG_CONFIG_PATH environment variable\nPackage \'xproto\', required by \'x11\', not found\n" } }', /Users/devan/.cargo/registry/src/github.com-1ecc6299db9ec823/x11-2.18.2/build.rs:36:67
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Any idea how I could fix it? Thanks in advance!

koalazub commented 3 years ago

Hey mate,

I haven't yet installed the software, but I'm expecting to run into the same issue. I've got this laid out as a plan according to the errors you've experienced.

From the error log, you're missing:

It also looks like there was mention of this in the Build section of the README and the common build issues.

To install pkg-config brew install pkg-config

Add this to your shell e.g. ~/.zsh
export to PATH
PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig/

Then for xproto:

# wget https://www.x.org/archive/individual/proto/xproto-7.0.31.tar.gz
# tar xvfz xproto-7.0.31.tar.gz
# cd xproto-7.0.31
# ./configure --prefix=/usr/local/xproto/7_0_31
# make
# make install

I'll be testing this out tonight at some point and will be using this as a frame of reference. But if you have resolved it, please let me know!

devanlooches commented 3 years ago

Hello, Thank you for your response!

I tried following all of your directions. I am still getting a panic error on build (I am using the --release flag) however, it seems to be a different one this time:

error: failed to run custom build command for `x11 v2.18.2`

Caused by:
  process didn't exit successfully: `/Users/devan/git_cloned_stuff/wtftw/target/debug/build/x11-cdb5f4dced1c833c/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=X11_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=X11_STATIC
  cargo:rerun-if-env-changed=X11_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=X11_STATIC
  cargo:rerun-if-env-changed=X11_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rustc-link-search=native=/usr/local/Cellar/libx11/1.7.2/lib
  cargo:rustc-link-lib=X11
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=X11_STATIC
  cargo:rerun-if-env-changed=X11_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=XINERAMA_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=XINERAMA_STATIC
  cargo:rerun-if-env-changed=XINERAMA_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR

  --- stderr
  thread 'main' panicked at 'Something BAD happened: Failure { command: "\"pkg-config\" \"--libs\" \"--cflags\" \"xinerama\" \"xinerama >= 1.1\"", output: Output { status: ExitStatus(ExitStatus(256)), stdout: "", stderr: "Package xinerama was not found in the pkg-config search path.\nPerhaps you should add the directory containing `xinerama.pc'\nto the PKG_CONFIG_PATH environment variable\nNo package 'xinerama' found\nPackage xinerama was not found in the pkg-config search path.\nPerhaps you should add the directory containing `xinerama.pc'\nto the PKG_CONFIG_PATH environment variable\nNo package 'xinerama' found\n" } }', /Users/devan/.cargo/registry/src/github.com-1ecc6299db9ec823/x11-2.18.2/build.rs:36:67
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed

Thank you again for your help.

koalazub commented 3 years ago

From the error it looks like you're missing xinerama from the PATH. Have you got it installed?

If you're on Mac then just brew install libxinerama should suffice. I wasn't able to test this out last night unfortunately

devanlooches commented 3 years ago

Yay! It compiled! Thank you!

devanlooches commented 3 years ago

One quick question. How would I then install it on macos?

koalazub commented 3 years ago

Oh you can just consult the documentation here. I think you typically just run the file after cargo build and you should be good to go. The point of exporting to PATH is so that you can just run the alias there and that should get you going. If you do think there should be more clarification though, it might be a good idea to write up a PR that updates the README and offer a clearer set of instructions :)

devanlooches commented 3 years ago

Hmmm. I tried running the executable and it panics:

thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', xlib/src/xlib_window_system.rs:75:26
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
koalazub commented 3 years ago

Hey again, I had a look at all the other PRs and it just doesn't seem like this might be worth it given the lack of documentation and support. Someone in here recommended this which might be a good alternative?

devanlooches commented 3 years ago

it just doesn't seem like this might be worth it given the lack of documentation and support.

I agree that this repo doesn't seem to be maintained anymore. Thank you very much for your help. I will look in to penrose as an alternative. cheers!