Package: erlang
Version: 1:10.b.9-4
Severity: wishlist
Tags: patch
I would like to review briefly some packaging bugs which I've found when
was trying to make erlang R10b-10 (Debian package version 1:10.b.10) package and
propose some fixes/enhancements.
My reworked diff can be found at svn://sgolovan.nes.ru/debian/erlang/erlang/
(the data in repository is suitable for building with svn-buildpackage).
1) There are two erlang-base packages. One including HIPE, the other without
HIPE. But if both are building (i386 architecture is an example) then *both*
are configured *with* HIPE (though hipe application is not included in
erlang-base). I consider this a bug, moreover, if configured with HIPE
enabled, erlang virtual machine becomes unstable (it systematically
segfaults with 2.4 kernel).
Proposed solution is to configure and build erlang twice (with and
without HIPE).
2) For now install-erlang-src target in debian/rules depends on
install-hipe-stamp. So it's impossible to build erlang package with HIPE
disabled.
Proposed solution is to substitute install-hipe-stamp by ${INSTALL_RULE}
3) There is some sophisticated code in debian/rules that cleans up installed
erlang files. But not sufficiently. It leaves some useless object files in
crypto and ssl application dirs and it replaces ROOTDIR in erlang start
scripts not always correctly (see /usr/lib/erlang/bin/start_erl for example).
It leaves several script sources in /usr/lib/erlang/bin/*.src. It doesn't
replace wrong ERL_ROOT in RELEASE file.
Proposed solution is in above SVN repository (look at debian/rules).
Now some enhancements:
4) It's very inconvenient to port the package to the higher erlang version
because it's full of hardcoded version numbers.
Proposed solution is to make templates of erlang-base-hipe.links.in,
erlang-base.links.in, erlang-mode.links.in and insert actual version
numbers only
during build process.
The same enhancement could be made for erlang-doc-html package.
5) For now erlang-base and erlang-base-hipe are unusable without erlang-nox.
But both contain kernel application wasting space.
Proposed solution is to move kernel to erlang-nox. (Another idea is to make
erlang-small package with only kernel, sasl and stdlib applications, which
should be sufficient to use erlang VM.)
6) Erlang uses pretty simple way to find its applications' code. So it's
dangerous to have one erlang version and another erlang-doc-html version
packages.
Proposed solution is to make erlang 1:10.b.9-* conflict with erlang-doc-html
<< 1:10.b.9-0 and erlang-doc-html >> 1:10.b.9-999 (for example).
7) Currently lintian override files contain more overrides than they should.
Proposed solution is simply to clean up them.
8) There are two patches around which are very useful when using with heavy
loaded applications (in particular for ejabberd server). These are supervisor
patch (it's included in newly released R11b from
http://support.process-one.net/browse/EJAB-19 and epoll support patch from
http://developer.sipphone.com/ejabberd/erlang_epoll_patch/. The latter is
successfully working at jabber.org and jabber.ru - two fairly large
installations.
It would be nice to include them in the package.
Hope to see stable and reliable Debian erlang package!
--
Sergei Golovan