Line 48: | Line 48: | ||
== Benefit to Fedora == | == Benefit to Fedora == | ||
* Users will get initial EC support. We still can't enable EC fully but at least we will enable some EC curves. | * Users will get initial EC support in Erlang. We still can't enable EC fully but at least we will enable some EC curves. | ||
* Users will have less issues caused by poor systemd and EPMD integration (lost node names etc). | * Users will have less issues caused by poor systemd and EPMD integration (lost node names during other Erlang daemons restarts etc). | ||
* Users will get centralized unified logging from all Erlang applications | * Users will get centralized unified logging from all Erlang applications | ||
* Users won't have to install X11-related libraries if they don't want to. | * Users won't have to install X11-related libraries if they don't want to. |
Revision as of 12:31, 26 March 2014
Better Erlang Integration
Summary
Improve Erlang software integration with the rest of Fedora.
Owner
- Name: Peter Lemenkov, Fedora Erlang SIG
- Email: lemenkov@gmail.com, erlang@lists.fedoraproject.org
- Release notes owner:
Current status
- Targeted release: Fedora 21
- Last updated: 2014-03-23
- Tracker bug: <will be assigned by the Wrangler>
Detailed Description
Erlang in Fedora is already in a good shape. However we can do better since there is a number of annoying shortcomings and issues. Just a few of them:
- Fedora partially enabled Ellyptic Curve Crypto recently but we still provide Erlang with EC disabled completely because there is no way to enable just a few EC in the current Erlang version.
- Erlang<->systemd interaction is in a quite poor state currently.
- There is no way to install "headless" Erlang. Every Fedora Erlang user have to install graphical libraries even if (s)he doesn't want to use GUI on the target machine.
- Every daemon written in Erlang has its own logging solution which doesn't use neither syslog nor Journald.
- Erlang packaging is quite complex and undocumented mostly.
In order to address all these issues we should do the following:
- Enable fine grained EC crypto support by upgrading Erlang to the latest R17.
- Start working on a better systemd support in Erlang by enabling EPMD systemd support. This could be done by merging patches from Matwey V. Kornilov.
- Add erlang-ejournald, erlang-lager_journald_backend, and make Journald as a default logging backend.
- Split-off infrequently used modules which requires X11, Pulseaudio and ensure that it won't break anything.
- Fix the long-standing noarch issue by providing additional default location for Erlang bytecode data.
- Update Erlang RPM-related macros to improve packaging by reducing spec-file sizes.
Benefit to Fedora
- Users will get initial EC support in Erlang. We still can't enable EC fully but at least we will enable some EC curves.
- Users will have less issues caused by poor systemd and EPMD integration (lost node names during other Erlang daemons restarts etc).
- Users will get centralized unified logging from all Erlang applications
- Users won't have to install X11-related libraries if they don't want to.
- Packagers won't see scary rpmlint messages regarding marking arch-independent package as arch-dependent one.
- Packagers will spend less time on packaging Erlang software for Fedora.
Scope
- Proposal owners:
- Other developers: N/A (not a System Wide Change)
- Release engineering: N/A (not a System Wide Change)
- Policies and guidelines: N/A (not a System Wide Change)
Upgrade/compatibility impact
N/A (not a System Wide Change)
How To Test
- Ensure that high-grade Erlang applications are still working:
Name | Tested |
couchdb |
No |
ejabberd |
No |
mochiweb |
No |
rabbitmq-server |
No |
riak |
No |
wings |
No |
- Collect feedback from volunteers regarding their experience with this Erlang/OTP version
User Experience
Fedora Erlang users will get more robust Erlang configurations. Less issues, more detailed logs.
Dependencies
The following packages must be rebuilt:
Name | Rebuilt |
couchdb |
No |
ejabberd |
No |
erlang-basho_metrics |
No |
erlang-bitcask |
No |
erlang-cl |
No |
erlang-ebloom |
No |
erlang-eleveldb |
No |
erlang-emmap |
No |
erlang-erlsyslog |
No |
erlang-esasl |
No |
erlang-esdl |
No |
erlang-js |
No |
erlang-skerl |
No |
erlang-snappy |
No |
wings |
No |
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
- Blocks product? product <-- Applicable for Changes that blocks specific product release/Fedora.next -->
Documentation
N/A (not a System Wide Change)