amethyst / evoli

An ecosystem-simulation game made with Amethyst
https://community.amethyst.rs/t/evoli-introduction/770
Other
217 stars 33 forks source link

Missing dependencies - alsa, some XCB libs #23

Closed frcr closed 5 years ago

frcr commented 5 years ago

README does not mention any dependencies and cargo run is supposed to be the only thing needed to be done.

However, the following error may be encountered

thread 'main' panicked at 'called `Result::unwrap()` on 
an `Err` value: "`\"pkg-config\" \"--libs\" \"--cflags\" \"alsa\"` 
did not exit successfully: exit code: 1\n--- stderr\n
Package alsa was not found in the pkg-config search path.\n
Perhaps you should add the directory containing `alsa.pc\'\nto 
the PKG_CONFIG_PATH environment variable\nNo package
 \'alsa\' found\n"', src/libcore/result.rs:997:5
note: Run with `RUST_BACKTRACE=1` environment variable
 to display a backtrace.

First of all, the error message is garbled (this is the exact form it is presented in terminal - escape slashes and all).

Second, it might be worth mentioning in README that libasound2-dev is required.

marotili commented 5 years ago

Thanks for the report!

We'll update the README to reference amethyst's dependencies https://github.com/amethyst/amethyst/#dependencies

frcr commented 5 years ago

While we're at it there's a similar issue with XCB:

note: /usr/bin/ld: cannot find -lxcb-render
          /usr/bin/ld: cannot find -lxcb-shape
          /usr/bin/ld: cannot find -lxcb-xfixes
          collect2: error: ld returned 1 exit status

error: aborting due to previous error
error: Could not compile `evolution-island`.

On a Debian system it can be solved by sudo apt install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev

frcr commented 5 years ago

We'll update the README to reference amethyst's dependencies https://github.com/amethyst/amethyst/#dependencies

That's the thing though, isn't it? I didn't install amethyst, I cloned and tried to compile the evolution island. If I was installing amethyst, I'd've checked its dependencies. But the whole installation guide of EI is just

To play Ensure you have Cargo installed (use rustup if you don't), and run the following: cargo run

and it doesn't mention amethyst.

I realise that this whole thing is an amethyst in-house project and for you guys even the idea of not realizing what's what sounds preposterous, but for a user coming in from google search page or Reddit it'd be helpful to at least outline the possible dep problems.

marotili commented 5 years ago

Sorry if I was not clear enough. You are right, users should not require knowledge of Amethyst and we missed that the installation is more complex than cargo run on Linux machines.

We are going to update our README so that future users will not struggle to get everything working.

Again thanks for reporting, it is very important that it is easy to get started :)

marotili commented 5 years ago

I updated the Readme. @frcr Did you manage to get it to run? If not, can you tell us if the updated Readme helps?

frcr commented 5 years ago

I updated the Readme. @frcr Did you manage to get it to run? If not, can you tell us if the updated Readme helps?

Yeah, sure I got it to run. If I was obnoxious enough to nag you about an unclear readme, do you really think I would've stopped whining here if it didn't even run?

These four libs were all the problems I encountered. After getting them it compiled and ran fine.