Hello All! CC to devel@xxxxxxxxxxxxxxxxxxxxxxx CC to erlang-questions@xxxxxxxxxx I would like to attract attention those erlangers, who use Fedora and especially those of them, who use Erlang from Fedora's main repository. Others are safe :) Since Erlang adoption steadily grows and more applications, written in Erlang, becomes popular, people starts complaining about the way Erlang is delivered in Fedora. One large bulk containing mixture of erlang/c/java sources, beam-files, examples, which has heavy dependencies like wxGTK and Java, is not that Average Joe wants when he tries to install his favorite document-oriented database, yet another web-server, xmpp-server or something similar. The problem is that we try to offer users a package with as much features enabled, as we could, so we can't simply disable some functionality at a build time. All we really can do here is to split one large package into pieces. Few of us (Fedora maintainers) briefly discussed this situation, and there is a consensus, that we should split off at least some parts of main Erlang package. I did some investigation, and find a way to completely modularize whole Erlang package. In a few words - main package consists of purely virtual 'erlang' package and a dozens of sub-packages (from erlang-appmon to erlang-xmerl - one sub-package for each %{_libdir}/erlang/lib/* item). The main virtual package 'erlang' depends on every subpackage, so if you prefer to install/upgrade erlang by typing "yum install erlang" you won't see any difference. What's new is a set of scripts to generate cross-subpackage dependencies. The approach for dependency generation is very straightforward and simple - with the addition to normal RPM dependency generator, each ebin/*.beam file within each sub-package is analyzed for imported and exported functions, and they are added (in form of erlang(Module:Finction/Arity)) to the list of RPM provides and requires. Other visible change is a removal of c_src, java_src and erlang src/*.erl files from subpackages. In fact, everything stored in /usr is not intended for recompiling by user, so it's safe to remove these files. If someone have any *technical* objections for doing this, it's time to dispute this change. At the first try, I did very sensitive mistake (already recovered) - unfortunately some *.hrl files, which should be stored in %{module}-%{version}/include intentionally stored in %{module}-%{version}/src . We can't do much here since many users hardcode these paths in their projects, so I just leaved all *.hrl files in src directory intact. I also remove empty and *.o files and fixed some installation errors with priv libraries, but these are minor changes. I repeat and emphasize - I'll do my best to achieve full compatibility with previous installations, and I'm pretty sure that all these changes wont break anything. Also I'm sure that we need to push this change into both F-12 and forthcoming F-13, since benefits are really great (if everything will be done properly and careful, of course - that's why I'm still testing every erlang-related package, included (and even yet not included) in Fedora for possible regressions). Fedora 11, EL-4 and EL-5 will remain unchanged. List of affected packages: https://fedoraproject.org/wiki/SIGs/Erlang#Current_packages Any objections and commentaries are highly welcome! -- With best regards, Peter Lemenkov. -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel