Description of problem:
rabbitmq-server has Require: erlang >= R12B-3 which pulls in every possible erlang package and it's dependencies including: gtk2, atk, tk, SDL and so on.
When using Amazon Linux AMI in Amazon EC2 it points by default to EPEL 6 repository. The side effect is that trying to install rabbitmq-server fails with lots of missing dependencies. I tried to rebuild the packages myself but there are way too many packages needed in order to build all necessary dependencies.
I doubt that wxGTK and friends are all necessary for Rabbitmq. Can you please fix the EPEL package so it lists only necessary dependencies and not the whole world.
The Amazon forums thread is here:
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. yum install rabbitmq-server on Amazon Linux AMI
I really really wish it could be fixed just removing several dependencies. Unfortunately it isn't that easy.
The main problem is that although this X11 stuff indeed does not required for RabbitMQ to run it does required for debugging and on-the-fly analysis. From someone's point of view if (s)he fails to reproduce some debugging recipes from internet (for example, starting appmon:start() or debugger:start()) then it's time to blame packager for broken Erlang distribution and honestly I think it would be true.
So from the one hand - several X11 libraries and broken dependency chain in broken variant of RHEL but fully functional Erlang distribution, from the other hand - Erlang with truncated essential functionality but happy casual RabbitMQ/Ejabberd/CouchDB/Mochiweb users.
Honestly I really feel for you and will try to cut off a dependency chain but I also don't want to break something. I plan to do something a bit more complicated rather than just removing some dependencies - for example some kind of "soft" dependencies using empty metapackages like erlang-debugger-x11 or erlang-appmon-x11. Without them every attempt to run some GUI tools from the console should end up with informative message about packages which must be installed manually.
So bottom line is - I'd like this ticket to stay open for a while (until I or someone else proposes something acceptable). But right now it looks like a bug with Amazon infrastructure.
thanks for the quick response.
It's OK with me to split the dependencies in two and be able to handle console users and GUI too. I hope it's not that hard to implement.
FYI I asked upstream about dependencies. This may be helpful:
How about something like:
Is it easy to break it down like this?
*** Bug 810586 has been marked as a duplicate of this bug. ***
Changing component to erlang and reassigning to myself.
Same issue while installing ejabberd. I guess ejabberd should require just particular erlang modules, not the whole erlang metapackage.
*** Bug 912050 has been marked as a duplicate of this bug. ***
*** Bug 680633 has been marked as a duplicate of this bug. ***
*** Bug 1009238 has been marked as a duplicate of this bug. ***
Yeah, I just hit this trying to install ejabberd too.
Seriously, I'm not installing *two* graphical toolkits on my headless server just to get a jabber server going.
Debian has an 'erlang-nox' metapackage which depends on all of erlang except the bits that require X:
and Debian's ejabberd package requires it. Perhaps you could do that?
*** Bug 1083637 has been marked as a duplicate of this bug. ***
Heads up. Due to numerous requests it was decided to fix this issue (enable "headless" Erlang) as a Fedora 21 feature. I plan to backport it to the rest of Erlang branches (including not yet released EL7).
Nice write-up, Peter!
Would it make sense to note your idea where applications which can use the GUI (but don't need it) throw an error when someone attempts to start them in GUI mode instead of having GUI libraries as hard install requirements?
Also, would it make sense to make erlang (source rpm) buildable without wx* in the first place?
erlang-17.3.4-1.fc21 has been submitted as an update for Fedora 21.
I believe I fixed *almost* all most annoying use cases where installing Erlang-application pulls a half of GUI stack. Unfortunately this is available in F-21 and Rawhide for now. I'm backporting all the necessary changes to EL7 (see bug #1161922) right now.
Unfortunately no luck for poor F-19, F-20 users. Sorry but you'd better to upgrade to F-21. Likewise, no luck for EL6, EL5 users for now.
Still some issues remains - installing any of these will pull the libX11 chain again:
So even if you want remote debugging with erlang-observer it will pull libX11 syack again. I'm thinking on how to handle it properly.
However if you just want to use RabbitMQ / CouchDB you will definitely notice the improvements.
* should fix your issue,
* was pushed to the Fedora 21 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing erlang-17.3.4-1.fc21'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).
erlang-R16B-03.9.fc20 has been submitted as an update for Fedora 20.
erlang-17.3.4-1.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report.
erlang-R16B-03.9.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.