From Fedora Project Wiki
(Removed riak from list of potential packages - it's on its way to Fedora already)
(Remove largely outdated (F14) "Current packages" section)
 
(54 intermediate revisions by 5 users not shown)
Line 8: Line 8:
 
* [[ConradMeyer]]
 
* [[ConradMeyer]]
 
* [[User:Ndim|Hans Ulrich Niedermann (ndim)]]
 
* [[User:Ndim|Hans Ulrich Niedermann (ndim)]]
 +
* [[User:rbarlow|Randy Barlow]]
 +
* [[User:jcline|Jeremy Cline]]
 +
* [[User:fnux|Timothée Floure]]
  
Please add your name above if you want to help.
+
Please send a mail to the [https://lists.fedoraproject.org/archives/list/erlang@lists.fedoraproject.org/ erlang mailing list] and add your name above if you want to help.
  
 
== Tasks ==
 
== Tasks ==
Line 16: Line 19:
 
* Ensure that all packages are built with +debug_info (slightly increase the size of beam-files, but won't hurt performance at all)
 
* Ensure that all packages are built with +debug_info (slightly increase the size of beam-files, but won't hurt performance at all)
 
* Allow parallel installation of packages (similar to kernel)
 
* Allow parallel installation of packages (similar to kernel)
* Retire compat-erlang in Rawhide. Would it be better to update it to R12 or R13?
 
 
* Provide pre-built plt images
 
* Provide pre-built plt images
 
* Narrow Build Requires - only list packages which are required for building and not the whole erlang stack.
 
* Narrow Build Requires - only list packages which are required for building and not the whole erlang stack.
Line 24: Line 26:
 
* pgsql needs patching for R11B due to missing lists:keymember/3 function. Seems to be a very simple task.
 
* pgsql needs patching for R11B due to missing lists:keymember/3 function. Seems to be a very simple task.
  
== Current packages ==
+
== Ongoing work ==
  
 +
* Package rebar3 ('the' erlang build tool) and deprecate rebar2, as upstream did.
 +
** Rebar3 is in the archive starting F30: [https://src.fedoraproject.org/rpms/erlang-rebar3 erlang-rebar3]
 +
** FIXME: rebar3 fetch dependencies from the network to run tests
 +
* Update [[User:Peter/Erlang Packaging Guidelines|Peter's Erlang packaging guidelines]] and promote them to the official guidelines.
 +
** Update the macros to use rebar3 inseated of rebar2
 +
** Make better use of the [https://hex.pm/ Hex] erlang/elixir package repository
 +
* Create an Erlang SIG group in dist-git providing RW access to erlang packages
 +
** See [https://pagure.io/fedora-infrastructure/issue/7456 #7456 on the infrastructure's issue tracker]
 +
* Extend this SIG to the [https://elixir-lang.org/ elixir language] (ask [[User:Fnux|fnux]] for details)
  
{| border="1"
+
Related threads:
|-
+
* [https://lists.fedoraproject.org/archives/list/erlang@lists.fedoraproject.org/thread/ZLRSPWBF2IVVTPOJAUDQCT5L6XPKDHNB/ Some work for the Erlang SIG (December 2018)]
| '''Name''' || '''EL-4''' || '''EL-5''' || '''EL-6''' || '''F-12''' || '''F-13''' || '''F-14''' || '''Rawhide'''
 
|-
 
| {{package|compat-erlang}} || - || - || - || {{yes|R10B-10}} || {{yes|R10B-10}} || {{yes|R10B-10}} || {{yes|R10B-10}}
 
|-
 
| {{package|couchdb}} || {{no|-}} ||  {{yes|0.11.2}} || {{yes|1.0.1}} || {{yes|0.11.2}} || {{yes|0.11.2}} || {{yes|1.0.1}} || {{yes|1.0.1}}
 
|-
 
| {{package|ejabberd}} || - || {{yes|2.1.5}} || {{yes|2.1.5}} || {{yes|2.1.5}} || {{yes|2.1.5}} || {{yes|2.1.5}} || {{yes|2.1.5}}
 
|-
 
| {{package|erlang}} || {{yes|R11B-2}} || {{yes|R12B-5}} || {{yes|R13B-04}} || {{yes|R13B-04}} || {{yes|R13B-04}} || {{yes|R14B-0}} || {{yes|R14B-0}}
 
|-
 
| {{package|erlang-amf}} || {{no|-}} || {{yes|0.git27329144}} || {{yes|0.git27329144}} || {{yes|0.git27329144}} || {{yes|0.git27329144}} || {{yes|0.git27329144}} || {{yes|0.git27329144}}
 
|-
 
| {{package|erlang-eradius}} || {{no|-}}<ref>No ets:delete/2, ets:insert/2, ets:lookup/2, ets:match_object/2, ets:new/2 and ets:update_counter/3 functions in R11B.</ref> || {{yes|0.20070627cvs}} || {{yes|0.20070627cvs}} || {{yes|0.20070627cvs}} || {{yes|0.20070627cvs}} || {{yes|0.20070627cvs}} || {{yes|0.20070627cvs}}
 
|-
 
| {{package|erlang-erlsyslog}} || {{yes|0.1}} || {{yes|0.1}} || {{yes|0.1}} || {{yes|0.1}} || {{yes|0.1}} || {{yes|0.1}} || {{yes|0.1}}
 
|-
 
| {{package|erlang-esdl}} || - || - || - || {{yes|1.0.1}} || {{yes|1.0.1}} || {{yes|1.0.1}} || {{yes|1.0.1}}
 
|-
 
| {{package|erlang-gen_leader}} || {{no|-}}<ref>No erlang:function_exported/3, lists:keysearch/3 and lists:member/2 functions available in R11B</ref> || {{yes|0.git}} || {{yes|0.git}} || {{yes|0.git}} || {{yes|0.git}} || {{yes|0.git}} || {{yes|0.git}}
 
|-
 
| {{package|erlang-getopt}} || {{no|-}}<ref>No lists:keymember/3, lists:keysearch/3 and string:to_lower/1 functions available in R11B</ref> || {{yes|0.3}} || {{yes|0.3}} || {{yes|0.3}} || {{yes|0.3}} || {{yes|0.3}} || {{yes|0.3}}
 
|-
 
| {{package|erlang-oauth}} || {{no|-}}<ref>No public_key module and base64:decode/1, base64:encode_to_string/1, httpc:request/4, re:split/3 and string:to_lower/1 functions available in R11B</ref> || {{yes|0.gite8aecf0}} || {{yes|0.gite8aecf0}} || {{yes|0.gite8aecf0}} || {{yes|0.gite8aecf0}} || {{yes|0.gite8aecf0}} || {{yes|0.gite8aecf0}}
 
|-
 
| {{package|erlang-protobuffs}} || {{no|-}}<ref>No erlang:iolist_to_binary/1, lists:keymember/3, lists:keysearch/3,lists:keytake/3, lists:member/2, string:join/2 and string:to_lower/1 functions available in R11B.</ref> || {{yes|0.git58ff962}} || {{yes|0.git58ff962}} || {{yes|0.git58ff962}} || {{yes|0.git58ff962}} || {{yes|0.git58ff962}} || {{yes|0.git58ff962}}
 
|-
 
| {{package|erlang-pgsql}} || {{yes|0.20080825svn}} || {{yes|0.20080825svn}} || {{yes|0.20080825svn}} || {{yes|0.20080825svn}} || {{yes|0.20080825svn}} || {{yes|0.20080825svn}} || {{yes|0.20080825svn}}
 
|-
 
| {{package|erlang-erlsom|erlsom}} || {{no|-}}<ref>No erlang:get_stacktrace/0, erlang:list_to_existing_atom/1, erlang:make_fun/3, lists:keysearch/3 and lists:member/2 functions available in R11B. It seems to be a doable task.</ref> || {{yes|1.2.1}} || {{yes|1.2.1}} || {{yes|1.2.1}} || {{yes|1.2.1}} || {{yes|1.2.1}} || {{yes|1.2.1}}
 
|-
 
| {{package|erlang-erlydtl|ErlyDTL}} || {{no|-}} || {{no|-}}<ref>Erlang >= R13B is required</ref> || - || - || - || {{yes|0.6.0}} || {{yes|0.6.0}}
 
|-
 
| {{package|erlang-esasl|esasl}} || {{no|-}}<ref>libgsasl is unavailable for EL-4</ref> || {{yes|0.1}} || {{yes|0.1}} || {{yes|0.1}} || {{yes|0.1}} || {{yes|0.1}} || {{yes|0.1}}
 
|-
 
| {{package|erlang-etap|etap}} || {{yes|0.3.4}} || {{yes|0.3.4}} || {{yes|0.3.4}} || {{yes|0.3.4}} || {{yes|0.3.4}} || {{yes|0.3.4}} || {{yes|0.3.4}}
 
|-
 
| {{package|erlang-gettext|gettext}} || {{no|-}} || {{yes|2.1.0}} || {{yes|2.1.0}} || {{yes|2.1.0}} || {{yes|2.1.0}} || {{yes|2.1.0}} || {{yes|2.1.0}}
 
|-
 
| {{package|erlang-ibrowse|ibrowse}} || {{no|-}} || {{yes|2.0.1}} || {{yes|2.0.1}} || {{yes|2.0.1}} || {{yes|2.0.1}} || {{yes|2.0.1}} || {{yes|2.0.1}}
 
|-
 
| {{package|erlang-lfe|lfe}} || {{no|-}} || wip || {{yes|0.6.1}} || - || wip || wip || {{yes|0.6.1}}
 
|-
 
| {{package|erlang-log4erl|log4erl}} || {{no|-}} || {{yes|0.9.0}} || {{yes|0.9.0}} || {{yes|0.9.0}} || {{yes|0.9.0}} || {{yes|0.9.0}} || {{yes|0.9.0}}
 
|-
 
| {{package|erlang-misultin|misultin}} || {{no|-}} || {{yes|0.6.1}} || {{yes|0.6.1}} || {{yes|0.6.1}} || {{yes|0.6.1}} || {{yes|0.6.1}} || {{yes|0.6.1}}
 
|-
 
| {{package|erlang-mochiweb|mochiweb}} || {{no|-}}<ref>Lots of missing required functions in R11B.</ref> || {{yes|1.4.0}} || {{yes|1.4.0}} || {{yes|1.4.0}} || {{yes|1.4.0}} || {{yes|1.4.0}} || {{yes|1.4.0}}
 
|-
 
| {{package|erlang-mustache|mustache.erl}} || {{no|-}} || {{yes|0.1.0}} || {{yes|0.1.0}} || {{yes|0.1.0}} || {{yes|0.1.0}} || {{yes|0.1.0}} || {{yes|0.1.0}}
 
|-
 
| {{package|erlang-neotoma|neotoma}} || {{no|-}} || {{yes|1.4}} || {{yes|1.4}} || {{yes|1.4}} || {{yes|1.4}} || {{yes|1.4}} || {{yes|1.4}}
 
|-
 
| {{package|rabbitmq-server}} || {{no|-}} || {{yes|2.1.0}} || {{yes|2.1.0}} || {{yes|2.1.0}} || {{yes|2.1.0}} || {{yes|2.1.0}} || {{yes|2.1.0}}
 
|-
 
| {{package|wings}} || - || - || - || {{no|1.0.1 (BROKEN)}} || {{no|1.0.1 (BROKEN)}} || {{no|1.2 (BROKEN)}} || {{no|1.2 (BROKEN)}}
 
|-
 
| {{package|erlang-xmlrpc|xmlrpc}} || {{no|-}} || {{yes|1.13}} || {{yes|1.13}} || {{yes|1.13}} || {{yes|1.13}} || {{yes|1.13}} || {{yes|1.13}}
 
|-
 
| {{package|yaws}} || {{no|-}}<ref>Erlang >= R13B is required</ref> || {{no|-}}<ref>Erlang >= R13B is required</ref> || wip || wip || wip || {{yes|1.89}} || {{yes|1.89}}
 
|}
 
 
 
<references />
 
  
 
== Reviews ==
 
== Reviews ==
 
   
 
   
 
* [https://bugzilla.redhat.com/543151 exmpp] - a fast and scalable library for the eXtensible Messaging and Presence Protocol.
 
* [https://bugzilla.redhat.com/543151 exmpp] - a fast and scalable library for the eXtensible Messaging and Presence Protocol.
* [https://bugzilla.redhat.com/638909 erlang-gproc] - Extended process registry for Erlang
 
* [https://bugzilla.redhat.com/639263 erlang-rebar] - Erlang Build Tools
 
 
* [https://bugzilla.redhat.com/639292 erlang-etorrent] - Erlang BitTorrent client and library
 
* [https://bugzilla.redhat.com/639292 erlang-etorrent] - Erlang BitTorrent client and library
* [https://bugzilla.redhat.com/648023 erlang-js] - A Friendly Erlang to Javascript Binding
 
* [https://bugzilla.redhat.com/652543 erlang-riak_client] - Erlang client for Riak
 
* [https://bugzilla.redhat.com/652546 erlang-webmachine] - A REST-based system for building web applications
 
* [https://bugzilla.redhat.com/652585 erlang-luke] - Dataflow / MapReduce coordination framework
 
 
* [https://bugzilla.redhat.com/652598 erlang-riak_core] - Distributed systems infrastructure used by Riak
 
* [https://bugzilla.redhat.com/652598 erlang-riak_core] - Distributed systems infrastructure used by Riak
* [https://bugzilla.redhat.com/652616 erlang-ebloom] - A NIF wrapper around a basic bloom filter
 
 
* [https://bugzilla.redhat.com/652623 erlang-bitcask] - Eric Brewer-inspired key/value store
 
* [https://bugzilla.redhat.com/652623 erlang-bitcask] - Eric Brewer-inspired key/value store
 
* [https://bugzilla.redhat.com/652629 erlang-riak_kv] - Riak Key/Value Store
 
* [https://bugzilla.redhat.com/652629 erlang-riak_kv] - Riak Key/Value Store
Line 113: Line 55:
 
* [http://erlyweb.org/ erlyweb]
 
* [http://erlyweb.org/ erlyweb]
 
* [http://www.stacken.kth.se/project/yxa/ Yxa]
 
* [http://www.stacken.kth.se/project/yxa/ Yxa]
* [http://github.com/ngerakines/erlang_mysql erlang-mysql-driver] - A native Erlang MySQL client library. One of the runtime dependencies for ejabberd. Please, not that there are two forks - [http://svn.process-one.net/ejabberd-modules/mysql/trunk one from P1] and another one from [http://erlang-mysql-driver.googlecode.com/svn/trunk Yariv Sadan]. All these three projects are based on the original work by Magnus Ahltorp.
+
* [http://github.com/ngerakines/erlang_mysql erlang-mysql-driver] - A native Erlang MySQL client library. One of the runtime dependencies for ejabberd. Please, not that there are two forks - [http://svn.process-one.net/ejabberd-modules/mysql/trunk one from P1] and another one from [http://erlang-mysql-driver.googlecode.com/svn/trunk Yariv Sadan]. All these three projects are based on the original work by Magnus Ahltorp. Read [http://www.eonblast.com/blog/erlang-mysql-driver-history/ this post] for further  details.
 
* [http://jungerl.sourceforge.net/ Jungerl] is also contains some very interesting libraries and applications, however not all of them are in good shape.
 
* [http://jungerl.sourceforge.net/ Jungerl] is also contains some very interesting libraries and applications, however not all of them are in good shape.
 
* [http://trapexit.org/Special:UserContributions User contributions page] at trapexit contains some handy user-submitted utilities.
 
* [http://trapexit.org/Special:UserContributions User contributions page] at trapexit contains some handy user-submitted utilities.
Line 126: Line 68:
 
* <s>erlang-fd_server</s>. Similar functionality (binding to privileged ports) may be obtained with [http://github.com/klacke/yaws/issues/issue/37 kernel > 2.6.24 with capabilities].
 
* <s>erlang-fd_server</s>. Similar functionality (binding to privileged ports) may be obtained with [http://github.com/klacke/yaws/issues/issue/37 kernel > 2.6.24 with capabilities].
  
 +
[[Category:SIGs]]
 +
[[Category:Fedora special-interest groups]]
 
[[Category:Language-specific SIGs]]
 
[[Category:Language-specific SIGs]]

Latest revision as of 10:17, 12 January 2019

Erlang Special Interest Group

Mission

To encourage the packaging of Erlang projects in Fedora.

Members/Packagers/Reviewers

Please send a mail to the erlang mailing list and add your name above if you want to help.

Tasks

  • Create common guidelines for erlang-related applications and libraries
  • Ensure that all packages are built with +debug_info (slightly increase the size of beam-files, but won't hurt performance at all)
  • Allow parallel installation of packages (similar to kernel)
  • Provide pre-built plt images
  • Narrow Build Requires - only list packages which are required for building and not the whole erlang stack.
  • Remove "soft" dependencies. Some package dependencies are not strictly required - application tries to "dlopen" it (it starts to use it only in case of success; in case of failure it fallbacks to some default scenario). Notable one is a debugger which tries to download GUI interface and fallbacks to cli in case of failure.
  • Fix installation of jinterface - it doesn't use %{_javadir} for storing jar-file now.
  • All man-pages should be marked as docs. Consider also installing them to system-default paths (very likely will produce a conflicts and namespace clashes).
  • pgsql needs patching for R11B due to missing lists:keymember/3 function. Seems to be a very simple task.

Ongoing work

  • Package rebar3 ('the' erlang build tool) and deprecate rebar2, as upstream did.
    • Rebar3 is in the archive starting F30: erlang-rebar3
    • FIXME: rebar3 fetch dependencies from the network to run tests
  • Update Peter's Erlang packaging guidelines and promote them to the official guidelines.
    • Update the macros to use rebar3 inseated of rebar2
    • Make better use of the Hex erlang/elixir package repository
  • Create an Erlang SIG group in dist-git providing RW access to erlang packages
  • Extend this SIG to the elixir language (ask fnux for details)

Related threads:

Reviews

Potential packages

  • erlyweb
  • Yxa
  • erlang-mysql-driver - A native Erlang MySQL client library. One of the runtime dependencies for ejabberd. Please, not that there are two forks - one from P1 and another one from Yariv Sadan. All these three projects are based on the original work by Magnus Ahltorp. Read this post for further details.
  • Jungerl is also contains some very interesting libraries and applications, however not all of them are in good shape.
  • User contributions page at trapexit contains some handy user-submitted utilities.
  • Nitrogen Web Framework.
  • egssapi - Erlang GSSAPI and SPNEGO API (one of the runtime requirements for Yaws).
  • eldap - Erlang LDAP API. A patched copy is bundled with ejabberd.

Rejected packages

  • Jabberlang - a client Jabber library for Erlang. Obsoleted by exmpp
  • erlmedia - Erlang library for parsing different media formats. One of the requirements for erlyvideo. Abandoned by upstream authors.
  • erlang-rtmp - Erlang RTMP library. One of the requirements for erlyvideo. Abandoned by upstream authors.
  • erlang-fd_server. Similar functionality (binding to privileged ports) may be obtained with kernel > 2.6.24 with capabilities.